Dsptoolbox

Latest version: v0.6

Safety actively analyzes 707299 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

0.6

---------------------
Misc
~~~~
- renamed some arguments in `general_plot`, `plot_spectrogram` and `plot_spl`
- `lin_phase_from_mag` and `min_phase_from_mag` now use the spectrum class as
an input
- most enums are checked exclusively. If a value is not regarded, a ValueError
is raised
- refactored `window_frequency_dependent`. The computation is now parallelized
and delivers a complex spectrum with a linear frequency vector

0.5.3

---------------------
Added
~~~~~
- `combine_ir_with_dirac` now can take a gain value for the impulse when
merging with the impulse
- `complex_smoothing` to ``transfer_functions``
- `MagnitudeNormalization` was extended to normalization of all channels using
only the first channel as a reference. This maintains the gain relations
- `AllpassFirstOrder` was added to biquads
- thd_percent was added to `harmonic_distortion_analysis`

Bugfix
~~~~~~
- return for `two_axes` plot in ``plots`` now has also the second axis
- plots for the `LRFilterBank` were fixed after some parameters were no longer
defaults

Misc
~~~~
- caching is now activated for certain parallelized computations
- most enums are checked exclusively. If a value is not regarded, a ValueError
is raised

0.5.2

---------------------
Added
~~~~~
- added new plot in ``plots`` with two y-axis on the same plot
- ``plot_bode`` to `ImpulseResponse`
- utility function `trim_with_level_threshold`
- `FirDesigner` in ``filter_banks``
- introduced `ensure_integer_delay` parameter for FirDesigner

Bugfix
~~~~~~
- `GroupDelayDesigner` was fixed when using interpolation to increase the
frequency resolution. The threshold for triggering the interpolation step is
now less strict
- fixed a bug where `harmonic_distortion_analysis` did not deliver the right
type for the spectrum of the fundamental

Misc
~~~~
- made group delay computation faster
- fixes and additions to documentation
- requirements for devs were improved
- more type annotations in ``plots``

0.5.1

---------------------
Added
~~~~~
- `get_next_power_2` in ``tools``
- `copy_with_new_time_data` for `Signal` and `ImpulseResponse`
- property `is_complex_signal` in `Signal`

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` in `Signal`
- 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

0.5

---------------------
Added
~~~~~
- Various properties were added to `Signal` and `Filter` 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 now `plot_taps()` for FIR filters
- `merge_filters` can now merge FIR or IIR filters with each other by
convolving and appending SOS, respectively
- `Filter` can now start FIR filters from files
- `apply_gain` can now be applied to filters and filter banks
- `delay` function was applied to apply delay integer delays to signals. This
is considerably more efficient than using `fractional_delay`
- `fractional_octave_smoothing` can now be applied to logarithmically spaced
data
- `spectral_difference` computes the magnitude or complex difference between
spectra
- `trim_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` and `merge_signals` to `append_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

0.4.8

---------------------
Added
~~~~~
- `convert_sample_representation` in ``dsptoolbox.tools``
- `sum_all_channels` method in Signal class
- `get_group_delay` method in Filter class
- iterator in Signal class now iterates over the channels
- `StateSpaceFilter` in ``filterbanks``
- synchronized swept-sine was added a new type of chirp in ``generators``
- `clear_time_window` in Signal class
- `modify_signal_length` in ``dsptoolbox.*``

Misc
~~~~
- extended functionality of `find_ir_latency` in ``transfer_functions``
- dropped support for Python 3.10
- rescaling time data can be done directly in `resample`
- `PhaseLinearizer` and `GroupDelayDesigner` now can use two different
integration methods. They also got a new parameter that allows for more
flexible designs
- `trim_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

Page 1 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.