• Welcome to ASR. 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!

Room simulator for non-shoebox rooms

Awesome, I love what you did. This is working great now. Thank you a lot!
The problem with the pressure map is gone. I don’t know whether you changed some code or my computer was having an overflow or something, but all seems good now.
I found the reason for the pressure map level mismatch (red all over the area). Obviously the pressure map is not normalised the way the FR graph is. Changing the number of subs or the the level of a single sub will increase the level in the pressure map. So with multiple subs the pressure map becomes more and more reddish, basically because the pressure exceeds the limit in large areas. (I can counter that by reducing the gain of each sub, but that is a bit tedious.)

I actually see this as a feature, this way I could explore what are the cost of inverted and delayed back subs in the DBA. The automatic normalisation of the FR graph hides that.

The problem is that details of the pressure distribution get lost.

One way to deal with that would be to normalise the pressure map too, but I would much prefer to keep the ”absolute“ levels. A scaling (slider?) of the pressure color scheme would keep the „right“ levels and provide all the flexibility for “seeing“ the pressure details.
To get pressure map and FR graph to be consistent one could use the pressure values from the pressure map and (automatically) shift the scale instead of normalising to the averaged SPL.
About the left column. Big improvement, much more efficient use of space.
Still I cannot edit gain and delay of Sub6 and look at the heat map at the same time but it is so much better.
A scrolling function that rolls up the left column even more than now would help (now it stops when left and right columns are flush at the bottom).
You might think about placing the label of a slider left of it (like with the frequency slider in the heat map frame) and use only a single line this way.
And I would place the more general parameters (Listener and Room Properties) on top as these will probably be changed interactively more often.
The value of ”Listening Height” in the left frame is not connected to the respective value in the Room Plan when ”Listener“ is activated. But both options can change the (active) value.


Frequency Range options

Pressure Map slider

FR-graph axis

Chrome

Min value only down to 20Hz

Max value is ok

OK

Safari (macOS)

Min value only down to 20Hz

Max value only up to 376Hz

Min value ok,

Max value above 376Hz is cut off
Safari (iOS)Min value only down to 20Hz

OK
OK

Did I mention that 8 subs would be great to have to simulate a crazy overkill DBA? ;-)
Even better would be to have 10 subs to investigate the superposition of subs (DBA) and mains in the crossover region.
Considering the amount of questions about sub integration a crossover option would bring this tool in a class of itself.
Once the geometry is solved the interactivity of sub/speaker/listener configuration and placement seems not to be particularly resource demanding.

And you certainly don't want to fall behind REW in features, would you?
EDIT:
I tried a simple and symmetric room 2x2x5m with one sub in the center of one small wall (2x2), listener is at half room height of 1m (I suppose the pressure map is calculated at listener height?).
Here is the screen shot with map for 94Hz and max of Frequency range 500Hz (see below).
View attachment 512344
Surprisingly the map is not symmetrical. I somehow doubt this is due to rounding errors as I switched to double precision.
But that is the very small effect.
Something funny happens when calculating the pressure with different values for the frequency range.
For example:
Max of frequency range set to 300 Hz, map for 94Hz
View attachment 512345
Max of frequency range set to 100Hz, map for 94Hz
View attachment 512346
This is more than significant.
At the same time the FR graph seems to be changed only a small bit.

And there is more.
When adding a vertex on a room plan without changing the geometry the map sometimes changes significantly after computation. Max of frequency range 300Hz, pressure map for 94Hz, right with additional vertex on the top wall.
View attachment 512347 View attachment 512348

The latter effect changes the FR graph a bit too.

Good catch on the listening height desync. Fixed.

The FR vs heatmap value mismatch was a real issue. The FR normalizes to an average 0 dB; the heatmap showed the raw transfer function magnitude. Same physics, different display references. Both now have a Gain control with Fixed/Auto modes. Auto normalizes: the heatmap subtracts the spatial mean at the displayed frequency (so you see relative peaks and nulls across the room), the FR subtracts the frequency mean (same as before). Fixed shows absolute dB with a rotary gain knob to scroll through the range. Switching from Auto to Fixed seeds the knob so the view stays in place.

Frequency caps when FEM reliability limits the range in custom rooms. You can always double the range with the Double precision button. I added text under the button about capping.

Source cap raised from 6 to 10. Not going to add crossover modeling. At least for now.

FEM works radically differently from the calculation you see in shoebox models. The glitches are all real. The asymmetry in a symmetric custom room is the FEM mesh. The triangulation doesn't preserve geometric symmetry, and the eigensolver inherits that. Adding a vertex to a rectangle has the same root cause: it switches from analytical cosine modes to FEM.

The frequency range affecting the 94Hz map is optimization and a modal truncation. The pressure map sums contributions from all computed modes through their resonance tails, not just the one at the displayed frequency. Fewer modes in the sum, different spatial pattern.
 
Source cap raised from 6 to 10. Not going to add crossover modeling. At least for now.
Thank you again. Crossover was just "such an idea" I had, not even necessary to judge alignment and of course you are doing the work and calling the shots.
The glitches are all real.
Interesting, all these deviations are due to mesh effects (and other FEM)? I did not expect that, but it gives some insight in the validity of this kind of simulation as in a real room even bigger effects will come from furniture and the like.
Fewer modes in the sum, different spatial pattern.
Obviously. I was just expecting the max value to be more of a display variable.
Does that mean the best result will come from choice of the highest max value of the frequency range (500Hz)?
 
Thank you again. Crossover was just "such an idea" I had, not even necessary to judge alignment and of course you are doing the work and calling the shots.

Interesting, all these deviations are due to mesh effects (and other FEM)? I did not expect that, but it gives some insight in the validity of this kind of simulation as in a real room even bigger effects will come from furniture and the like.

Obviously. I was just expecting the max value to be more of a display variable.
Does that mean the best result will come from choice of the highest max value of the frequency range (500Hz)?

There is always a tradeoff between accuracy and speed of simulation. I geared this one towards seeing how the 3-4 lowest octaves work with reasonable accuracy for practical designing for small rooms. Furniture and wall materials will have a much larger effect anyway than triangulation errors in the current system.

- Does that mean the best result will come from choice of the highest max value of the frequency range (500Hz)?
-> Absolutely
 
This is brilliant work, congrats!
 
Back
Top Bottom