ValveSoftware / steam-audio

Steam Audio
https://valvesoftware.github.io/steam-audio/
Apache License 2.0
2.2k stars 152 forks source link

How to calculate acoustic material properties? #330

Open Xottab-DUTY opened 3 months ago

Xottab-DUTY commented 3 months ago

Below are the acoustic material properties for a few standard materials.

```cpp
{"generic",{0.10f,0.20f,0.30f,0.05f,0.100f,0.050f,0.030f}}
{"brick",{0.03f,0.04f,0.07f,0.05f,0.015f,0.015f,0.015f}}
{"concrete",{0.05f,0.07f,0.08f,0.05f,0.015f,0.002f,0.001f}}
{"ceramic",{0.01f,0.02f,0.02f,0.05f,0.060f,0.044f,0.011f}}
{"gravel",{0.60f,0.70f,0.80f,0.05f,0.031f,0.012f,0.008f}},
{"carpet",{0.24f,0.69f,0.73f,0.05f,0.020f,0.005f,0.003f}}
{"glass",{0.06f,0.03f,0.02f,0.05f,0.060f,0.044f,0.011f}}
{"plaster",{0.12f,0.06f,0.04f,0.05f,0.056f,0.056f,0.004f}}
{"wood",{0.11f,0.07f,0.06f,0.05f,0.070f,0.014f,0.005f}}
{"metal",{0.20f,0.07f,0.06f,0.05f,0.200f,0.025f,0.010f}}
{"rock",{0.13f,0.20f,0.24f,0.05f,0.015f,0.002f,0.001f}}
```

SteamAudio has useful hint for some materials (added with #53), but not all of them. It's missing asphalt, for example :) But providing properties for all the materials out there to fulfill everyone's needs is impossible/suboptimal.

The more important question, how one should calculate correct properties?

I have no physics knowledge, but I found some useful formulas and hints in Google... But that may be inaccurate for SteamAudio specifics.

Maybe someone could provide an utility that calculates correct IPLMaterial from given physic material parameters (density, spring, etc.)

garrynewman commented 3 months ago

If you give chat gpt that array it can generate what you need

Xottab-DUTY commented 3 months ago

If you give chat gpt that array it can generate what you need

Thanks! I quite don't fully trust AI results, but it helped me with the data.

The main topic question isn't solved, though.

lakulish commented 3 months ago

There isn't really a universal database that we're aware of, but there are some publicly available databases that may be useful, for example: https://www.ptb.de/cms/ptb/fachabteilungen/abt1/fb-16/ag-163/absorption-coefficient-database.html.

Here is some more discussion on this: https://www.reddit.com/r/Acoustics/comments/10zb7lj/sound_absorption_data/.

For specific materials, manufacturers may have the relevant information on their websites, or there might be research papers or whitepapers with the relevant information, for example: https://www.researchgate.net/publication/304530168_TrafficRoad_Noise_Mitigation_under_Modified_Asphalt_Pavements (this is for asphalt specifically).