0.4.2 (2022-05-20)

  • Bugfix: Sweep functions marked for deprecation had no return value.

0.4.1 (2022-04-08)

  • Bugfix: do not allow ‘flat’ shading parameter in 2D plot functions (PR #291)

0.4.0 (2022-03-02)

  • pyfar.plot

    • The plot module was largely extended by 2D color coded versions of the former line plot functions: time_2d, freq_2d, phase_2d, group_delay_2d, time_freq_2d, freq_phase_2d and freq_group_delay_2d. New shortcuts for interactive plots were added to cycle between line and 2D plots and to toggle between vertical and horizontal orientation of 2D plots. (PR #198, #273, #276)

    • The xscale parameter was replaced by the more explicit freq_scale parameter in all plot functions. It will be removed in pyfar 0.6.0 (PR #282)

  • pyfar.filter

    • Added cascaded shelving filters low_shelve_cascade and high_shelve_cascade used to generate filters with a user definable slope given in dB per octaves within a certain frequency region. (PR #284)

  • pyfar.Signal

    • Added a freq_raw property, which is the frequency spectrum without normalization. It enables easy access and reduces complexity in internal computations. (PR #274)

0.3.0 (2022-01-28)

  • More reasonable handling of FFT normalizations in arithmetic operations. This is a major change and might break backwards compatibility in some cases (although this is unlikely to happen, PR #253, #245, #235).

  • The documentation now contains concepts behind pyfar in a separate section. This makes the concepts easier to find and understand and the documentation of the classes and functions cleaner (PR #251, #243).

  • pyfar.dsp

    • Added convolve for convolution of signals in the time and frequency domain (PR #232)

    • Added deconvolve for frequency domain deconvolution with the optional regularization (PR #212)

    • functions in the filter module have more verbose names, e.g., ‘butterworth’ instead of ‘butter’. Functions with old names will be deprecated in pyfar 0.5.0 (PR #248).

    • time_window can now return the window to make it easier to inspect windows and apply windows multiple times (PR #247)

    • the dB parameters in spectrogram obsolete. They were thus removed and can be controlled in the plot function pyfar.plot.spectrogram instead (PR #258, #256).

  • pyfar.io

    • pyfar.io.read and pyfar.io.write can now handle Python built in data types (PR #205)

    • added read_audio and write_audio to support more types of audio files (based on the soundfile package). The old functions read_wav and write_wav will be deprecated in pyfar 0.5.0 (PR #234)

    • read_sofa can now also load SOFA files of DataType ‘TransferFunction’ (e.g. GeneralTF) and uses the sofar package (PR #254, #240).

  • pyfar.plot

    • Plots of the magnitude spectrum now use 10 as the new default log_prefix for calculating the level in dB for plotting Signals with the FFT normalizations 'psd' and 'power' (PR #260)

    • Improved handling of colorbar in pyfar.plot.spectrogram. A speparate axis for the colorbar can be passed to the function. The function can return the axis of the colorbar. (PR #216)

    • custom_subplot now returns axis handles (PR #237)

    • Frequency plots allow to show negative frequencies (PR #233)

  • Filter classes (pyfar.FilterFIR, pyfar.FilterIIR, pyfar.FilterSOS)

    • Rename the property shape to n_channels. pyfar Filter objects do not support multi-dimensional layouts (PR #102)

    • Filter states can now be saved to allow block-wise processing (PR #102)

    • The coefficients can now be set. This allows to mimic time variant systems in block-wise processing (PR #252)

    • Improved documentation (PR #252)

  • Audio classes (pyfar.Signal, pyfar.TimeData, pyfar.FrequencyData)

    • Make arithmetic operations available as pyfar.add, pyfar.subtract, etc. (PR # 230)

    • Remove fft normalizations from FrequencyData (PR #225)

  • pyfar.Coordinates and pyfar.Orientations

    • Renamed methods pyfar.Coordinates.get_nearest_* to pyfar.Coordinates.find_nearest_*. Old methods will be deprecated in pyfar 0.5.0 (PR #209)

    • The plots generated by Coordinates.show and Orientations.show now use the pyfar plot style (PR #169)

  • pyfar.signals

    • renamed pyfar.signals.linear_sweep to pyfar.signals.linear_sweep_time and pyfar.signals.exponential_sweep to pyfar.signals.exponential_sweep_time. Old functions will be deprecated in pyfar 0.5.0 (PR # 201)

  • CI: Only test wheels to save time during testing (PR #236)

  • Enhanced contributing guidelines (PR #239)

0.2.3 (2021-11-12)

  • Fix broken install on Python 3.9

0.2.2 (2021-11-05)

  • Removed dependency on pyfftw in favor of scipy.fft to support Python 3.9 and above (PR #227)

0.2.1 (2021-10-12)

  • Bugfix for left and right hand side arithmetic operators (PR #226)

0.2.0 (2021-06-01)

  • pyfar.dsp

    • added linear_phase (PR #176)

    • added minimum_phase (PR #185)

    • added zero_phase (PR #175)

    • added time_window (PR #178)

    • added pad_zeros (PR #184)

    • added time_shift (PR #186)

    • added InterpolateSpectrum (PR #187)

    • Unified the unit parameter in the pyfar.dsp module to reduce duplicate code. Unit can now only be samples or s (seconds) but not ms or mus (milli, micro seconds) (PR #194)

  • pyfar.dsp.filter

    • Add reconstructing fractional octave filter bank (PR #180)

    • Bugfix for mis-matching filter slopes in crossover filter (PR #174)

  • Refactored internal handling of filter functionality for filter classes (PR #190)

  • Added functionality to save/read filter objects to/from disk in pyfar.io.read and pyfar.io.write (PR #192, #182)

  • Improved unit tests

  • Improved documentation

0.1.0 (2021-04-11)

  • First release on PyPI