v0.10.1 - 2026-05 -01
Added
- Added a boolean flag
plot_wallsto toggle wall rendering inRoom.plot. - Set the
plot_wallstoFalseforAnechoicRoomby default.
Changed
- Removed the deprecated
absorptionparameter fromShoeBox,
Room.from_corners, andRoom.extrude. - Modernized the build system to use
pyproject.tomlandCMake. - External dependencies (
Eigen,nanoflann,pybind11) are now
automatically managed via CMake'sFetchContent. - Switched to dynamic versioning using
setuptools_scm. - Relocated the test suite from the source package to a top-level
tests/directory. - Update the continuous integration to use cibuildwheel to handle all platforms
including manylinux. - The location of the SOFA files can be specified by the
PYROOMACOUSTICS_DATA_PATHenvironment variable.
Bugfix
v0.10.0 - 2026-04-01
Ray Tracing Directivity
This new release introduces source and receiver directivities for the ray
tracing simulation engine.
-
Support for source directivities in non-shoebox rooms using the images source
model. -
New
pyroomacoustics.randommodule that provides some primitives for
sampling at random from arbitrary distributions on the sphere. This is used
for source directivities in the ray tracing simulator. -
New octave filter bank with energy conservation and perfect reconstruction
described in Antoni, "Orthogonal-like fractional-octave-band filters," 2009.
The filter bank is implemented in
pyroomacoustics.acoustics.AntoniOctaveFilterBank. -
A method
sample_raysis added to theDirectivityobjects to provide a
unified interface to sample rays of sources used for ray tracing. -
The class
directivities.SphericalHistogramallows to collect and display
histograms on the sphere which can be useful to visualize and test
directivities.
Added
-
A new
randomsub-module that contains a Numpy random number generator to use
package wide and some methods to set the seeds for this generator and that of
the libroom module. -
New methods to sample from spherical distributions either analytically, or by
rejection sampling are provided inrandom.
Changed
-
Bumped the numpy requirement to v1.17.0 to use the
numpy.random.Generatorobjects. -
Adds random "bending" of the rays to account for scattering in the ray tracing.
-
Refactor the way the RIR is weighted with the histogram in simulation/rt.py.
-
Improves
pra.experimental.measure_rt60: Compute the T60 using a fit. Default is
log-domain. Adds option to fit in linear domain. -
Add Directivity pattern for real spherical harmonics.
-
Flip the settings to use
octave_bands_keep_dc=Trueby default. There should be
minimal change due to the introduction of the high-pass filter in v0.9.0.
Bugfix
-
Fixes the lowest octave band filter that was malformed when using
octave_bands_keep_dc=True. -
Fixes the computation of the octave band widths that were not correct for the lowest
and high bands. -
In
doa.py, theax.xaxis.gridandax.yaxis.gridparameters were changed frombtovisible. -
Fixes
MicrophoneArray.append(MicrophoneArray) AttributeError: 'MicrophoneArray' object has no attribute 'shape'. -
Fixes issue #421: When generating a highpass filtered room impulse response make
sure that the output is a memory contiguous NumPy array.