mir_eval icon indicating copy to clipboard operation
mir_eval copied to clipboard

fftpack → fft

Open bmcfee opened this issue 4 months ago • 11 comments

Fixes #373

This PR implements a number of small improvements to the separation module:

  • Migrate to the newer scipy.fft API, instead of fftpack
  • Replace fft() by rfft()
  • Use the built-in helper for computing fast FFT lengths instead of brute-forcing 2**k
  • Remove padding when we can

This should altogether get us about a 50% speedup in separation metrics and bring down the test build times considerably. I don't think this will affect accuracy at all. However, we should probably also roll in #376 once the dust settles.


This PR bumps the minimum supported scipy to 1.5.4 (from 1.4.0) to avoid a bug in the next_fast_length implementation for real-valued inputs. 1.5.4 was released in Nov. 2020, while 1.4.0 was Dec. 2019. These are both far enough in the past that I don't consider it a big deal, but I am noting it here in case it warrants discussion.

bmcfee avatar Apr 09 '24 15:04 bmcfee