Releases: nico-franco-gomez/dsptoolbox
Releases · nico-franco-gomez/dsptoolbox
v0.5.1
0.5.1
Added
get_next_power_2
intools
copy_with_new_time_data
forSignal
andImpulseResponse
- property
is_complex_signal
inSignal
Bugfix
- fixed assertion where transfer function of
Filter
could not compute nyquist - amplitude_scale_factor in
Signal
can only be read as property but not set
by user. It is acquired when setting the time data - metadata and metadata_str properties are computed on-demand for every class
- removed unused attribute
scale_factor
inSignal
- modify some f-Strings so that they are also compatible with python 3.11
- passing a single frequency to
linkwitz_riley_crossover
is now supported
Misc
- memory footprint was reduced to minimum due to avoidance of copying multiple
times at different stages - added python 3.13 support
- file structure of helpers was rearranged for more clarity
- requirements for different python versions were specified
- fixed type annotations
v0.5
v0.5
Added
- Various properties were added to
Signal
andFilter
class. They are mostly
computed dynamically Spectrum
class that can handle magnitude and complex, multi-channel spectra- Multiple enums in each module were added in order to replace all string
parameters across the code base Filter
has nowplot_taps()
for FIR filtersmerge_filters
can now merge FIR or IIR filters with each other by
convolving and appending SOS, respectivelyFilter
can now start FIR filters from filesapply_gain
can now be applied to filters and filter banksdelay
function was applied to apply delay integer delays to signals. This
is considerably more efficient than usingfractional_delay
fractional_octave_smoothing
can now be applied to logarithmically spaced
dataspectral_difference
computes the magnitude or complex difference between
spectratrim_ir
can now be applied to multichannel signals directly
Misc
Filter
was thoroughly refactored. Its constructor is now simpler.Signal
does not do implicit copies of the time data anymore and was largely
refactored- documentation and type annotations fixes
- renamed
merge_filterbanks
andmerge_signals
toappend_filterbanks
and
append_signals
. Now they can also get a list with more than 2 objects - replaced binary string parameters with booleans across code base
- most classes have builder-pattern-like behavior that return the object when
it has been modified
v0.4.8
v0.4.8
Added
convert_sample_representation
indsptoolbox.tools
sum_all_channels
method in Signal classget_group_delay
method in Filter class- iterator in Signal class now iterates over the channels
StateSpaceFilter
infilterbanks
- synchronized swept-sine was added a new type of chirp in
generators
clear_time_window
in Signal classmodify_signal_length
indsptoolbox.*
Misc
- extended functionality of
find_ir_latency
intransfer_functions
- dropped support for Python 3.10
- rescaling time data can be done directly in
resample
PhaseLinearizer
andGroupDelayDesigner
now can use two different
integration methods. They also got a new parameter that allows for more
flexible designstrim_ir
can now trim the end of an IR without modifying the start
Bugfix
- plotting in
LRFilterBank
now returns the plots just like the FilterBank
class - multiple docs fixes and type annotations
merge_filterbanks
was fixed so that the output is a (deep) copy of the
input instead of a shallow one
v0.4.7
v0.4.7
Added
- new
dft
intransforms
for computing DFTs with any resolution lpc
intransforms
ExponentialAverageFilter
infilterbanks
- support for python 3.13
Misc
- improved precision of parallel filter by adding a third feed-forward
coefficient to least-squares approximation - replaced convolve with oaconvolve in multiple places for optimal handling
with different signal lengths - made framed signal methods available in
dsptoolbox.tools
- general doc corrections and additions
- added numba as new dependency for parallelizing some functions. It will be
installed and used automatically if the current python environment is 3.12 or
below. Support for numba and python 3.13 is not yet available.
Bugfix
- fixed problem with group delay designer
- fixed a problem with array dimensions in autoregressive coefficients estimation
v0.4.5
0.4.5
Added
FilterChain
infilterbanks
for use in real-time applicationsarma
infilterbanks
for obtaining arbitrary IIR filter approximations
to an impulse response
Misc
- renamed smoothe to smoothing across the library
- zeros, poles and gain are now saved in
Filter
. They are returned instead
of recomputing from the coefficients - general doc improvements
Bugfix
- corrected a bug where the time window of an impulse response did not match
after some time-domain operation was applied to it - fixed a problem with normalization in
audio_io
- fixed a problem with
Distortion
ineffects
v0.4.4
0.4.4
Added
- bark and erb approximations to warping factor
ParallelFilter
infilterbanks
KautzFilter
infilterbanks
- Realtime capabilities for filter
LatticeLadderFilter
,StateVariableFilter
,
IIR
,FIR
,KautzFilter
warp_filter
intransforms
resample_filter
instandard
Misc
- moved
kautz
andkautz_filters
functionality toKautzFilter
Bugfix
- use the peak for
combine_ir_with_dirac
instead of delay with minimum-phase
v0.4.3
0.4.3
Added
- added
laguerre
totransforms
- added
kautz
andkautz_filters
totransforms
Misc
- energy decay curve is not corrected with compensation energy or pruned from
noise when something during the estimation goes wrong (fallback strategy) - updated README
- moved
warp_ir
totransforms
and renamed towarp
- general documentation additions and fixes
- finding the end of an IR now also allows for defining a distance to noise
floor
Bugfix
- fixed a bug during the computation of the energy decay curve where
phase-inverted peaks were not taken into account for the start of the
impulse response
v0.4.2
0.4.2
Added
apply_gain
utility function instandard
- beta parameter for arbitrary noise generation
GroupDelayDesigner
infilterbanks
- nomalization of signals now accepts rms values
Misc
- frequency response interpolation with more interpolation modes
- refactored
PhaseLinearizer
Bugfix
- corrected a case where scaling of spectrum while plotting was wrong
v0.4.1
v0.4.0
0.4.0
Added
ImpulseResponse
as a subclass ofSignal
. It handles time windows, coherence
and plotting of those windows. Assertions for expectedImpulseResponse
instead
ofSignal
were added as well- new module
tools
for computations with primitive data types, added time
smoothing, interpolation of frequency response get_transfer_function
in Filter and FilterBank- analog-matched biquads in
filterbanks
gaussian_kernel
approximation infilterbanks
- gain parameter functionality for some biquads
- new biquad types (lowpass and highpass first order, inverter)
- new explicit constructors for signal and filter
- pearson correlation as part quality estimator for latency computation
- new scaling parameter in synchrosqueezing of
cwt
- new parameter in
window_frequency_dependent
Bugfix
- bugfix in
window_frequency_dependent
when querying a single frequency bin - corrected plotting of spl when calibrated signal is passed
Misc
- got rid of signal type attribute. Use now
ImpulseResponse
- general doc additions and fixes, type annotations
fractional_octave_smoothing
performance improved- renamed some files of code base for consistency