Skip to content

Releases: nico-franco-gomez/dsptoolbox

v0.5.1

23 Jan 10:50
Compare
Choose a tag to compare

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

v0.5

16 Jan 12:04
394e5cf
Compare
Choose a tag to compare

v0.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

v0.4.8

07 Jan 22:16
bd7a7c1
Compare
Choose a tag to compare

v0.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

v0.4.7

24 Oct 10:20
db0b04a
Compare
Choose a tag to compare

v0.4.7

Added

  • new dft in transforms for computing DFTs with any resolution
  • lpc in transforms
  • ExponentialAverageFilter in filterbanks
  • 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

18 Sep 17:07
ef5dcc1
Compare
Choose a tag to compare

0.4.5

Added

  • FilterChain in filterbanks for use in real-time applications
  • arma in filterbanks 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 in effects

v0.4.4

03 Sep 22:05
45e9db4
Compare
Choose a tag to compare

0.4.4

Added

  • bark and erb approximations to warping factor
  • ParallelFilter in filterbanks
  • KautzFilter in filterbanks
  • Realtime capabilities for filter LatticeLadderFilter, StateVariableFilter,
    IIR, FIR, KautzFilter
  • warp_filter in transforms
  • resample_filter in standard

Misc

  • moved kautz and kautz_filters functionality to KautzFilter

Bugfix

  • use the peak for combine_ir_with_dirac instead of delay with minimum-phase

v0.4.3

25 Aug 10:40
4cb9b85
Compare
Choose a tag to compare

0.4.3

Added

  • added laguerre to transforms
  • added kautz and kautz_filters to transforms

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 to transforms and renamed to warp
  • 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

18 Aug 14:26
313d4e1
Compare
Choose a tag to compare

0.4.2

Added

  • apply_gain utility function in standard
  • beta parameter for arbitrary noise generation
  • GroupDelayDesigner in filterbanks
  • 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

05 Aug 10:42
572abdf
Compare
Choose a tag to compare

0.4.1

Bugfix

  • channel handling of ImpulseResponse

v0.4.0

05 Aug 10:06
d178fa7
Compare
Choose a tag to compare

0.4.0

Added

  • ImpulseResponse as a subclass of Signal. It handles time windows, coherence
    and plotting of those windows. Assertions for expected ImpulseResponse instead
    of Signal 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 in filterbanks
  • 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