-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gpuRIR.beta_SabineEstimation is not consistent with RIR-Generator #18
Comments
Hello, The issue is due to the Sabine formula that both gpuRIR and RIR-Generator use to predict the RT60 from the room sizes and its reflection coefficients. According to this equation, the lowest RT60 that a room with room_sz = [6.98986182, 7.65234006, 3.58826744] can have would be 0.14571999028149607 seconds (with fully absorbent walls). That's obviously not true since a room with fully absorbent walls would be an anechoic chamber no matter its size, but the Sabine formula is not really accurate for so absorbent walls. Since you're asking an RT60 lower than that minimum, RIR-Generator answers you that the reflection coefficients cannot be computed and gpuRIR returns the closest solution according to the Sabine formula, which is having fully absorbent walls. I would suggest you decrease your room size or increase the RT60 since it is probably not a very realistic scenario, but if you really need to simulate such a room, you could use gpuRIR using custom reflection coefficients (instead of using Best regards, |
Thank you David. May you give a criteria to check if I'm asking an RT60 lower than the minimum? Like when |
Maybe it would be better to raise an exception than giving the closest solution in this situation? |
As explained in the paper, the Sabine formula is: where You could use
I would say that, when the requested RT60 is under that minimum, all the elements in the array will be 0, but I'm not 100% sure of that.
I'm not sure of this since it might suggest that being slightly under that minimum is much less accurate than being slightly over it, when it is not. The function |
For room_sz = [6.98986182, 7.65234006, 3.58826744], RT60 = 0.14357507, RIR-Generator returns
"Error: The reflection coefficients cannot be calculated using the current room parameters, i.e. room size and reverberation time.
Please specify the reflection coefficients or change the room parameters."
While, gpuRIR.beta_SabineEstimation(room_sz, RT60) returns [0., 0., 0., 0., 0., 0.].
I don't know if gpuRIR.beta_SabineEstimation gave the right results, or [0., 0., 0., 0., 0., 0.] is a sign of error.
Code of matlab for testing RIR-Generator:
The text was updated successfully, but these errors were encountered: