tuwien-musicir / rp_extract

Rhythm Pattern music feature extractor by IFS @ TU-Vienna
GNU General Public License v3.0
110 stars 27 forks source link

Runtime optimization #3

Closed audiofeature closed 8 years ago

audiofeature commented 9 years ago

test timings of particular function calls and optimize runtime (e.g. through using matrix multiplications instead of lookups and for loops)

audiofeature commented 8 years ago

made timing tests within the rp_extract function code, with these approximate results (out of my head, sorry, did not keep original timing outputs):

time measurements in seconds per each rp_extract segment iteration:

segmentation: 0.001 s (improved by doing mono->stereo and hearing threshold before the loop) periodogram: 0.006 2nd FFT: 0.013 Phon, Sone: about 0.001 all other transforms are smaller / negligible

the change of the transform2bark output from complex128 to float64 (better: same as input) - which is used in all subsequent transforms! - brought only very minor improvement

Tried to use scipy.signal.periodogram function but it took twice as long as our handcoded version above (0.013 s) and delivers different results (therefore we keep the code as is)

in 2nd FFT i don't see how to improve (not sure if numpy.apply_along_axis instead of the for loop brings any benefit)