-
Notifications
You must be signed in to change notification settings - Fork 486
Releases: LCAV/pyroomacoustics
v0.10.1
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.
Assets 2
v0.7.7
Bugfix
- Fixes a bug when plotting an anechoic room
- Fixes a buggy assert from
rir_build.cpp - Makes the build system consistent for all source files in
pyroomacoustics/libroom_src - Fixes a call to a deprecated function of scipy.integrate in
pyroomacoustics/denoise/iterative_wiener(issue #362)
Assets 2
v0.7.6
Bugfix
- Fixes the default value of
energy_thresinexperimental.rt60to match the
previous behavior of the function (issue #358) - Further fixes issue with cast reflections delays to float32 in room.py (#353)
which was not fully fixed by the previous update - Fixes calls to deprecated API of
scipy.linalg.eigh - Fixes use of deprecated feature of numpy (conversion of singleton array to scalar)
Assets 2
v0.7.5
Changed
- Extra parameter
energy_threshadded topyroomacoustics.experimental.measure_rt60.
The energy tail beyond this threshold is discarded which is useful for noisy RIR
measurements. The default value is 0.95.
Bugfix
- Fixes a bug in
beamforming.circular_microphone_array_xyplane(#348) - Fixes a bug in
room.Room.plot_rirwhere the x-axis would have the wrong
ticks when called withkind="tf" - Fixes an issue where the
visibilityattribute of the room is not
set if there are no visible source or image source in the room. (#313) - Fixes issue with cast reflections delays to float32 in
room.py(#353) - Fixes calls to
numpy.linalg.solvewith Numpy 2.0 API
Assets 2
v0.7.4
Added
- New implementation of fast RIR builder function in the libroom C++ extension to replace the current cython code. Advantages are: 1) only one compiled extension, 2) multithreading support
- New global parameter sinc_lut_granularity that controls the number of points used in the look-up table for the sinc interpolation. Accessible via parameters.constants.get.
- New global parameter num_threads that controls the number of threads used in multi-threaded code (rir builder only at the moment). The number of threads can also be controlled via the environement variable PRA_NUM_THREADS
- Adds package build support for Python 3.11 and 3.12. - Adds package build for new Apple M1 architecture
Changed
- Removed the broken get_rir method of the class SoundSource
- Removes package build support for Python 3.7 (EOL)
Bugfix
- Fixes a bug when using randomized image source model with a 2D room (#315) by @hrosseel
- Fixes a bug when setting the air absorption coefficients to custom values (#191), adds a test, and more details in the doc
- Fixes a bug in the utilities.angle_function in the calculation of the colatitude (#329) by @fabiodimarco
- Replaces the crossing-based point-in-polygon algorithm in the C++ code with the more robust winding number algorithm (#345)
- Fixes usage of deprecated hann window with new version of scipy in metrics.py (#344) by @mattpitkin
New Contributors
- @hrosseel made their first contribution in #315
- @mattpitkin made their first contribution in #344
- @fabiodimarco made their first contribution in #329
Full Changelog: v0.7.3...v0.7.4
Assets 2
v0.7.3
Bugfix
- Fixes issue #293 due to the C++ method Room::next_wall_hit not handling 2D shoebox rooms, which cause a seg fault
Full Changelog: v0.7.2...v0.7.3
Assets 2
v0.7.2
Added
- Added the AnechoicRoom class. @duembgen
- Added FastMNMF2 (Fast Multichannel Nonnegative Matrix Factorization 2) to
bsssubpackage. @sekiguchi92 - Randomized image source method for removing sweeping echoes in shoebox rooms. @orchidas
- Adds the
cart2sphermethod inpyroomacoustics.doa.utilsto convert from cartesian
to spherical coordinates. - Example
room_complex_wall_materials.py - CI for python 3.10
- Appveyor builds for compiled wheels for win32/win64 x86
Changed
- Cleans up the
plot_rirfunction in Room so that the labels are neater. It
also adds an extra optionkindthat can take values "ir", "tf", or "spec"
to plot the impulse responses, transfer functions, or spectrograms of the RIR. - Refactored the implementation of FastMNMF. @sekiguchi92
- Modified the document of init.py in
doasubpackage. - End of Python 3.6 support.
- Removed the deprecated
realtimesub-module. - Removed the deprecated functions
pyroomacoustics.transform.analysis,pyroomacoustics.transform.synthesis,pyroomacoustics.transform.compute_synthesis_window. They are replaced by the equivalent functions inpyroomacoustics.transform.stftsub-module. - The minimum required version of numpy was changed to 1.13.0 (use of
np.linalg.multi_dotindoasub-package see #271) @maldil
Bugfix
- Fixes missing import statement in room.plot for 3D rooms (PR #286) @usernamenoahfoster
- On win64,
bss.fastmnmfwould fail due to some singular matrix. 1) protect solve
with try/except and switch to pseudo-inverse if necessary, 2) change eps 1e-7 -> 1e-6 - Fixed pypi upload for windows wheels
- Fixed most warnings in the tests
- Fixed bug in
examples/adaptive_filter_stft_domain.py
Thanks to
- @sekiguchi92 for the implementation of fastmnmf2
- @orchidas for the implementation of the randomized image source method
- @duembgen for the implementation of the AnechoicRoom class
- @usernamenoahfoster @maldil @hutauf @conkeur @popcornell for bug fixes, reports, and improvements
Contributors
Assets 2
v0.6.0
Added
- New DOA method: MUSIC with pseudo-spectra normalization. Thanks @4bian! Normalizes MUSIC pseudo spectra before averaging across frequency axis.
Bugfix
- Issue #235 : fails when set_ray_tracing is called, but no mic_array is set
- Issue #236 : general ISM produces the wrong transmission coefficients
- Removes an unncessery warning for some rooms when ray tracing is not needed
Misc
- Unify code format by using Black
- Add code linting in continuous integration
- Drop CI support for python 3.5