Skip to main content

Crate autoeq_roomsim

Crate autoeq_roomsim 

Source
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
BinauralConfig
Configuration for binaural rendering
BinauralResponse
Binaural output containing left and right ear responses
BoxObject
Configuration for a box-shaped scattering object
CylinderObject
Configuration for a cylinder-shaped scattering object
DiffractionEdge
Represents an edge in the room for diffraction calculation
DirectivityPattern
Directivity pattern
FmmConfig
FMM configuration
FrequencyConfig
Frequency range configuration
ImpulseResponse
Impulse response data structure
ImpulseResponseConfig
Configuration for impulse response generation
LShapedRoom
L-shaped room
MetadataConfig
Simulation metadata
Point3D
3D point in space
Point3DConfig
3D point configuration
RectangularRoom
Rectangular room
RoomAcoustics
Room acoustics metrics including RT60
RoomMode
Represents a room resonant mode
RoomOutput
RoomSimulatorWasm
Room Acoustics Simulator - WASM interface
SimulationConfig
Complete simulation configuration
SimulationResults
SliceOutput
SolverConfig
Solver configuration
Source
Sound source
SourceConfig
Source configuration
SourceOutputInfo
SourceResponse
SphereObject
Configuration for a sphere-shaped scattering object
SpinoramaCurve
A single SPL curve at a specific angle (for spinorama directivity data)
VisualizationConfig
Visualization configuration
WallMaterial
Wall material with frequency-dependent absorption coefficients
WallMaterialsConfig
Wall materials configuration for all 6 surfaces

Enums§

BemAssemblyMethod
Assembly method for the BEM matrix
BemSolverMethod
Linear solver method
CrossoverConfig
Crossover filter configuration
CrossoverFilter
Crossover filter
DirectivityConfig
Directivity pattern configuration
RoomGeometry
Room geometry enum
RoomGeometryConfig
Room geometry configuration
ScatteringObjectConfig
Scattering object enum for JSON configuration
WallMaterialConfig
Wall material configuration (JSON-serializable)
WallSurface
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