Generates multi-channel room impulse responses (RIRs) using the image source method proposed by Allen and Berkley [1]. A description of the method as well as the generator can be found in [2]. The user can control the reflection order, room dimensions, and microphone directivity. The MATLAB version is a MEX-function compiled from C++ source; the Python version is the official port and shares the same underlying core.
The Python implementation is available here with documentation and can be installed via pip install rir-generator. The MATLAB implementation is available here.
Simulates room transfer functions between transducers mounted on audio devices (e.g., smart speakers) using a modified image source method that incorporates local diffraction and scattering effects around the transducers [3]. Supports arbitrary source and receiver directivities expressed as spherical-harmonic coefficients, angle-dependent reflection coefficients, and convex room shapes (DEISM-ARG) beyond the standard shoebox model.
The Python implementation is available here with documentation and can be installed via pip install deism.
Simulates the sound pressure signals observed on a spherical microphone array in a reverberant enclosure [4]. The method employs spherical harmonic decomposition and accounts for scattering from a rigid sphere. The decomposition error can be made arbitrarily small by increasing the number of spherical harmonics used.
The MATLAB implementation is available here.
Simulates room impulse responses for various microphone array architectures — uniform linear arrays, uniform circular arrays, and uniform spherical arrays — placed at randomized positions and orientations inside a room. Uses quaternion-based rotations to ensure uniform angular coverage. Suitable for generating large RIR datasets for training and evaluating deep learning-based speech and audio processing models.
The Python implementation is available here.
Generates the response of a moving sound source or receiver in a reverberant environment. The user specifies source and receiver positions at each discrete time instance; the output is computed by convolving the anechoic source signal with the time-varying room impulse response computed via the image method. Multiple receiver positions can be specified simultaneously.
The Python implementation is available here. The MATLAB implementation is available here.