What’s new¶
Upcoming Release (25.01)¶
New features:
Bugfixes
Documentation
Internal
24.10¶
- New features:
Sounddevice inputs now allow for user-settable sample rates and precision types
- Block-wise frequency domain processing
Introduces new acoular.base module with abstract base classes
Generator
,SpectraGenerator
,InOut
,TimeOut
,SpectraOut
Introduces new module acoular.fprocess including new frequency domain processing classes
RFFT
,IRFFT
,AutoPowerSpectra
andCrossPowerSpectra
Introduces new module acoular.process including the following classes for general purpose (domain invariant) processing:
Cache
,Average
,SampleSplitter
Rename
MaskedTimeInOut
toMaskedTimeOut
Deprecates:
TimeInOut
,FFTSpectra
,TimeAverage
,MaskedTimeInOut
,TimeCache
adds unittests test_process.py, test_fprocess.py
- adds documentation example example_fft.py
allow more platforms to build the docs files including Linux, MacOS, and Windows
- Bugfixes
flush file in
TimeCache
to prevent data loss / corruptionfixes use of already deprecated traits
fixes import order to avoid the deactivation of parallelization of numba
fixes numpy.matlib deprecation warning
- Documentation
updates literature and adds sphinxcontrib-bibtex extension to support bibtex citation in the documentation.
cleans-up and structures the conf.py file and fixes missing acoular logo in documentation
fixes missing and wrong docstrings for result methods in
acoular.tbeamform
improves the explanation of the installation of dependencies
add explanation on how to test specific Python version only
test documentation build on all latest platforms
- Internal
- refactoring of classes in
acoular.tbeamform
(moves buffer logic away from Beamformer classes)
adds new
SamplesBuffer
class located inutils
- replaces the markdown-link-check by lychee
faster CI (written in RUST)
allows more files to be checked, including the .rst files in the documentation
adds a cron job that runs daily
sets final version for several deprecated traits. (Will be removed in version 25.01)
use scipy.linalg consistently over numpy.linalg
drops support for Python 3.8 and 3.9
enable Numpy version > 2.0
run unittests on the latest MacOS
24.07¶
- New features:
Implement a lazy result array for
acoular.fbeamform.BeamformerBase
derived classesAdds flow establishment length traits
Updates acoular demo with ASCII map and gets rid of writing file
- Bugfixes:
temporary fix to PyTables - NumPy 2.0 incompatibility problem
Fixes
acoular.fbeamform.BeamformerGridlessOrth
shgo params and eva_list initial value bugmakes
acoular.sdinput.SoundDeviceSamplesGenerator
always importable- Internal:
use hatch for publishing the Acoular package
add issue templates
adds Conda CI
CI for TestPyPI and PyPI
remove plot_example.py
add autolabel rule for fix and linting
fix linting rules
add zenodo release to CITAITON.cff
24.05¶
adds support for Python version 3.12 on Linux, MacOS, Windows
drops official support for Python version 3.7
provides new tools to import data in AIAA array benchmark format
- Bugfixes:
changes to UMA-16 microphone array arrangement
- Internal:
formatting and linting with ruff
introduce hatch
measure test coverage
replace zenodo.json by CITATION.cff
Bugfixes CI
update LICENSE
adds code of conduct
allow workflow dispatch for testing on different branches using GitHub
improve documentation
- refine package structure
move test directory outside of the source directory
remove outdated submodules fileimport and nidaqimport
introduce new submodule acoular/tools
24.03¶
Improve test coverage for
BeamformerCMF
- Changes to
BeamformerSODIX
:
correction of wrong cost-function
speedups through the use of numpy.einsum_path together with numpy.einsum
changed start value pgtol for the optimization with scipy.optimize.fmin_l_bfgs_b solver
- Bugfixes:
fixes unrecognized sector arguments in
MetricEvaluator
handles version-dependent default values for normalize attribute in sklearn solvers (relevant for
BeamformerCMF
)fixes bug in
BeamformerOrth
: assigned strongest source at grid index 0 when instead of eva_list the trait n was givenfixes broken
SpatialInterpolator
minor bugfix for single microphone transfer functions calculated with
SteeringVector
fixes broken NNLS method in
BeamformerCMF
(wrong keyword argument normalize)
- Internal:
new GitHub workflow for CI of the documentation
added Zenodo metadata file
changes to author name in pyproject.toml
23.11¶
New class
MetricEvaluator
to evaluate the performance of source mapping methods according to Herold and Sarradj (2017)New class
PointSourceConvolve
to blockwise convolve an arbitrary source signal with a spatial room impulse responseAll filter classes derived from
Filter
use SOS filters nowNo more version restrictions for scikit-learn
Speedups for numba jitted functions by enforcing C-contiguous arguments and the efficient use SIMD processor instructions
BeamformerOrth
now reimplements orthogonal deconvolution to be even faster and has a slightly different interfaceSimple benchmark suite to compare the performance of Acoular core routines on different computers
Some internal rework in grid and sector classes
Test coverage is improved
- Bugfixes:
minor bugfix for convective amplification in
BeamformerCleantTraj
andBeamformerCleantTrajSq
bugfix in some attributes of
ImportGrid
23.6¶
Supports Python 3.7, 3.8, 3.9, 3.10, 3.11 on Linux, MacOS, Windows
New build system using hatch, purge setuptools
New base class
BeamformerAdaptiveGrid
for gridless algorithmsNew class
BeamformerGridlessOrth
for gridless orthogonal beamformingNew class
RectSector3D
Improved ray casting implementation for
GeneralFlowEnvironment
- Improved handling of spectra calculation:
New base class
BaseSpectra
New class
FFTSpectra
for time-frequency analysisNew class
PowerSpectraImport
for cross spectral matrix import
MicGeom
now has an aperture traitTests are improved
- Bugfixes:
broken numpy.int import
one off bug in
LineGrid
22.3¶
New class
BeamformerSodix
New SplitBregman and FISTA solvers in
BeamformerCMF
IDW is now available for virtual rotation
different steering vector formulations are now available for time beamformers as well
- Speedups:
time domain beamformers and CleanT deconvolution now share a common core codebase and all do blockwise processing
- Bugfixes:
broken digest in
RectGrid3D
repaired
BeamformerCleant
and derived classes now never miss samples
21.05¶
Supports Python 3.6, 3.7, 3.8, 3.9 on Linux, MacOS, Windows
New class
FiltWNoiseGenerator
New classes
SphericalHarmonicSource
,Linesource
,MovingPointSourceDipole
,MovingLineSource
New class
TimeConvolve
- Speedups:
CSM works now in parallel and is faster
frequency domain beamformers are abaout 30% faster
time domain beamformers and CLEAN-T is now about 10 x faster
Unittests for all major features, much better coverage
- Bugfixes:
integration sectors
new grid classes from 20.10 are now imported into module namespace
20.10¶
Supports Python 3.6, 3.7, 3.8
- New base classes for time signal processing:
Filter
,FilterBank
New filter classes:
TimeExpAverage
,FiltFreqWeight
,OctaveFilterBank
Demo script is now part of module (see Getting Started for usage)
New class for processing sound card input:
SoundDeviceSamplesGenerator
New class for cumulative averaging:
TimeCumAverage
New grid classes
ImportGrid
,LineGrid
,MergeGrid
New versatile integration sector classes
RectSector
,CircSector
,PolySector
,ConvexSector
,MultiSector
New class for mixing multiple channels
ChannelMixer
New class for using arbitrary sources as signal:
GenericSignalGenerator
New time-domain beamforming classes for CLEAN-T method:
BeamformerCleant
,BeamformerCleantSq
,BeamformerCleantTraj
,BeamformerCleantSqTraj
Adds possibility to store/load metadata to/from HDF files with
WriteH5
/TimeSamples
classesNew submodule
tools
containing several helper functions, e.g. for data aggregation
WriteWAV
: user can optionally set name of output wav fileBugfix: PowerSpectra.freq_range / .ind_low / .ind_high are now correctly updated depending on changed attributes
Bugfix:
SineGenerator
amplitude is now set viaamplitude
attributeSome minor fixes
20.02¶
Adds gradient-based solver for BeamformerCMF (L_BFGS_B)
Adds possibilty to take into account convective amplification of moving sources in BeamformerTimeTraj
TraitsUI support of the classes has to be activated via
config
Bugfix: use left-orientated coordinate system in rotating flow environment
Bugfix: correct wrong angle shift in spline interpolation
Removes several Python 2.7-specific implementations
19.11¶
Adds new classes for handling rotating data, including detection of trigger signals and interpolation of sensor data for virtual array emulation (
Trigger
,AngleTracker
,SpatialInterpolator
,SpatialInterpolatorRotation
,SpatialInterpolatorConstantRotation
)Introduces new
SampleSplitter
class, which allows distribution of data streamsAdds new (global) caching options for more flexible cache file handling (e.g. never cache results, always cache, cache read-only). See
config
for information on how to use this.User can choose whether to use h5py or pytables package for handling hdf files. See
config
for information on how to use this.Change: BeamformerGIB behaviour (not calculating sources with eigenvalue of zero)
Bugfix: BeamformerTime interpolation
Bugfix: Integer division in PNoiseGenerator
Test suite and CI updates
19.08¶
Supports Python 3.5, 3.6, 3.7
This will be the last version to officially support Python 2.7
Cache and data directories are now always created in current directory (Linux and Windows)
Bugfix: Steering vector backwards compatibility
Bugfix: Ambiguous caching (changes in an object’s class name as well as changes in the data file content are now monitored for caching)
PowerSpectra: Frequency range to be evaluated can be set directly
Some code clean-up
Renamed examples
19.02¶
Adds support for Python 3.7
Introduces new
SteeringVector
class (see Getting Started and ../examples/index for usage). With this, some of the Beamformer and PointSource traits are deprecated and should no longer be used. While the current version is intended to be fully compatible with older scripts, deprecation warnings will be raised if necessary.Introduces optional use of reference distance for SPL evaluation (current default: reference position at (x,y,z)=(0,0,0) )
Introduces some basic Unit tests to evaluate the beamformer results
Bugfix: CLEAN algorithm now uses correct PSFs
some minor Bugfixes
18.01¶
Added new DAMAS solving strategies (BeamformerDamasPlus)
Added Generalized Inverse Beamforming
Floating point precision of CSM, PSF and beamformer customizable (default: float64) – affects cache file size
PowerSpectra class now includes EigSpectra functionality (EigSpectra still callable for backwards compatibility)
Inverse methods: unit of sound pressure for internal calculation customizable (default: nPa) for better numeric stability with sklearn solvers. Still returns all values in Pa.
Bugfix: BeamformerFunctional works now with steering vector formulation II (inverse) and III (true level) which produced incorrect results in the past.
Bugfix: BeamformerFunctional can only be called when the diagonal of the CSM is included
Bugfix: Corrected calculation of PSF for steering vector formulation IV
Bugfix: Behaviour of normalizing PSF at assumed source location (psf=1) is removed
17.11¶
Added support for Python 3.4, 3.5 and 3.6
Implementation of fast/parallelized code now with Numba (instead of C++ and SciPy.weave)
cross spectral matrix (CSM) orientation changed (was transposed in earlier versions). Please do not use the cache files from earlier versions in version 17.11!