|
JPL Spatial
Sound spatialization and propagation library
|
#include <JPLSpatial/AirAbsorption.h>
Public Member Functions | |
| AirAbsorption (const AirAbsorptionParams ¶ms) | |
| float | ComputeAbsorptionPerMeter (float frequencyHz) const |
| Compute pure-tone sound attenuation coefficient in dB/m, for atmospheric absorption. | |
| simd | ComputeAbsorptionPerMeter (simd frequenciesHz) const |
Static Public Member Functions | |
| static AirAbsorptionCache | CacheParameters (const FrequencyBands &frequencyBands, const AirAbsorptionParams ¶ms, float nyquist=22050.0f) |
| static simd | ComputeForDistance (float distance, const AirAbsorptionCache &aaCache) |
| static float | ComputeForFrequency (float frequencyHz, const AirAbsorptionParams ¶ms) |
| static AbsorptionCoeffs | ComputeForFrequencies (const FrequencyBands &frequenciesHz, const AirAbsorptionParams ¶ms) |
| Compute pure-tone sound attenuation in four frequency bands. | |
| static FrequencyBands | ComputeHFWeightedBandCenters (const SplitFrequencies &splitFrequenciesHz) |
AirAbsorption object can be constructed from environmental parameters and reused to compute absorption for different frequencies. This avoids a lot of computation when the environment doesn't change.
Otherwise AirAbsorption has static functions to compute air absorption for pure-tone feuquencies and for frequency bands.
|
inlineexplicit |
|
inlinestatic |
Compute pure-tone sound attenuation coefficient in dB/m, for atmospheric absorption.
|
inlinestatic |
Compute sound attenuation due to air absorption for distance in four frequency bands. Uses linearized approximation for non-linear high frequency decay which provides more accurate result than just distanc * dB_loss.
|
inlinestatic |
Compute pure-tone sound attenuation in four frequency bands.
|
inlinestatic |
Compute pure-tone sound attenuation for atmospheric absorption, in dB/m.
Note: this static function should be use only when a single frequency coefficient is needed, in case coefficients are needed for multiple frequency points and the same AirAbsorptionParams, it's better to construct AirAbsorption object with said AirAbsorptionParams, which reuses a lot of terms.
|
inlinestatic |
Compute energy-weighted band frequencies for more accurate high frequency loss over mid-long distance. I.e. for band with center frequency > 1kHz, use center frequency of the lower third.