Expand description
WASM bindings for Room Acoustics Simulator
This module provides WebAssembly bindings to run room acoustics simulations in the browser. It supports:
- Rectangular and L-shaped room geometries
- Multiple sources with directivity and crossover filters
- Multiple solver methods:
- Direct field computation (free-field propagation)
- Image Source Method (ISM) with 1st, 2nd, 3rd order reflections
- Modal analysis for low frequencies
- Hybrid modal/ISM with Schroeder frequency crossover
- BEM (Boundary Element Method) for accurate wave-based simulation
- Frequency response and spatial slice visualization
- Impulse response generation
- Binaural rendering
The BEM solver uses pure Rust linear algebra (no BLAS) for WASM compatibility.
Structs§
- BemConfig
- Complete BEM solver configuration
- BemResult
- Result of a BEM simulation at a single frequency
- Binaural
Config - Configuration for binaural rendering
- Binaural
Response - Binaural output containing left and right ear responses
- BoxObject
- Configuration for a box-shaped scattering object
- Cylinder
Object - Configuration for a cylinder-shaped scattering object
- Diffraction
Edge - Represents an edge in the room for diffraction calculation
- Directivity
Pattern - Directivity pattern
- FmmConfig
- FMM configuration
- Frequency
Config - Frequency range configuration
- Impulse
Response - Impulse response data structure
- Impulse
Response Config - Configuration for impulse response generation
- LShaped
Room - L-shaped room
- Metadata
Config - Simulation metadata
- Point3D
- 3D point in space
- Point3D
Config - 3D point configuration
- Rectangular
Room - Rectangular room
- Room
Acoustics - Room acoustics metrics including RT60
- Room
Mode - Represents a room resonant mode
- Room
Output - Room
Simulator Wasm - Room Acoustics Simulator - WASM interface
- Simulation
Config - Complete simulation configuration
- Simulation
Results - Slice
Output - Solver
Config - Solver configuration
- Source
- Sound source
- Source
Config - Source configuration
- Source
Output Info - Source
Response - Sphere
Object - Configuration for a sphere-shaped scattering object
- Spinorama
Curve - A single SPL curve at a specific angle (for spinorama directivity data)
- Visualization
Config - Visualization configuration
- Wall
Material - Wall material with frequency-dependent absorption coefficients
- Wall
Materials Config - Wall materials configuration for all 6 surfaces
Enums§
- BemAssembly
Method - Assembly method for the BEM matrix
- BemSolver
Method - Linear solver method
- Crossover
Config - Crossover filter configuration
- Crossover
Filter - Crossover filter
- Directivity
Config - Directivity pattern configuration
- Room
Geometry - Room geometry enum
- Room
Geometry Config - Room geometry configuration
- Scattering
Object Config - Scattering object enum for JSON configuration
- Wall
Material Config - Wall material configuration (JSON-serializable)
- Wall
Surface - Wall surfaces in a rectangular room
Constants§
- ABSORPTION_
FREQUENCIES - Standard octave band center frequencies for absorption coefficients (Hz)
Functions§
- approximate_
hrtf_ magnitude - Simplified HRTF magnitude approximation
- calculate_
air_ absorption - Calculate air absorption coefficient (Np/m) using ISO 9613-1 approximation
- calculate_
binaural_ response - Calculate binaural response for a room simulation
- calculate_
ear_ positions - Calculate ear positions from head center and orientation
- calculate_
impulse_ response - Calculate impulse response from frequency response using IFFT
- calculate_
itd - Calculate interaural time difference (ITD) using Woodworth’s formula
- calculate_
modal_ pressure - Calculate modal pressure at a point from room mode superposition
- calculate_
room_ acoustics - Calculate room acoustics for a rectangular room with given wall materials
- calculate_
room_ modes - Calculate room modes for a rectangular room
- compute_
impulse_ response - Compute impulse response from frequency response data
- create_
default_ config - Create a default configuration JSON
- critical_
distance - Calculate critical distance (where direct and reverberant fields are equal)
- edge_
diffraction_ coefficient - Calculate edge diffraction coefficient using simplified UTD (Uniform Theory of Diffraction)
- get_
material_ presets - Get a list of available wall material presets
- get_
rectangular_ room_ edges - Get diffraction edges for a rectangular room (12 edges at corners)
- get_
room_ modes - Calculate room modes for a rectangular room (standalone WASM function)
- get_
rt60 - Calculate RT60 and other room acoustics metrics
- get_
schroeder_ frequency - Get the Schroeder frequency for a room
- hybrid_
crossover_ weight - Calculate hybrid crossover weight for blending modal and ISM responses
- init_
panic_ hook - Initialize panic hook for better error messages in browser console
- rt60_
eyring - Calculate RT60 using Eyring’s formula
- rt60_
sabine - Calculate RT60 using Sabine’s formula
- validate_
config - Validate a configuration JSON and return any errors