History¶
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
10as 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