Comments (4)
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 gpuRIR.beta_SabineEstimation(room_sz, RT60)
) and try to find those that approximate your desired RT60, which I guess would be quite low but not just 0.
Best regards,
David
from gpurir.
David
Thank you David.
May you give a criteria to check if I'm asking an RT60 lower than the minimum?
Like when beta_SabineEstimation
returns an array containing more than one zero?
from gpurir.
Maybe it would be better to raise an exception than giving the closest solution in this situation?
from gpurir.
May you give a criteria to check if I'm asking an RT60 lower than the minimum?
As explained in the paper, the Sabine formula is:
where
You could use
Like when
beta_SabineEstimation
returns an array containing more than one zero?
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.
Maybe it would be better to raise an exception than giving the closest solution in this situation?
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 beta_SabineEstimation
is an estimation and should be used carefully (that's why I named it like that instead of just get_beta
).
from gpurir.
Related Issues (20)
- How to decide the direction of speaker and micphone when setting their patterions? HOT 7
- an error occured when using gpuRIR.simulateTrajectory HOT 2
- An error occurs when calling after the installation is complete. HOT 6
- ImportError: DLL load failed while importing gpuRIR_bind: The specified module could not be found.
- How to simulate direct-path rir with gpuRIR HOT 3
- all-zero values exist in generated RIRs HOT 6
- GPUassert: invalid configuration argument HOT 4
- Compute30 is deprecated for nvcc 530 HOT 3
- position HOT 2
- Possible memory leak HOT 4
- error when run example.py HOT 10
- Installation failed HOT 3
- Can't generate 48kHz rirs longer than 1s HOT 4
- from gpuRIR_bind import gpuRIR_bind ImportError: DLL load failed while importing gpuRIR_bind: The specified module could not be found HOT 5
- The cuda HOT 2
- Installation Problems HOT 9
- Installation failed on MACOS HOT 1
- The value range about input source.
- Can gpurir run with multiprocessing? HOT 1
- How can i make it works when pytorch.dataloader num_workers > 0 with gpu_num > 1? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gpurir.