#include "randomaccessaudioreadable.h" #include struct SpectrogramResult { Eigen::MatrixXf spectrogram; Eigen::MatrixXf lgd; Eigen::ArrayXf window; double hopSize; }; auto filterbankFrequencies(int bandsPerOctave, double fmin, double fmax, double a = 440.0); Eigen::MatrixXf filterbank(int numFFTBins, double sampleRate, int bands = 24, double fmin = 30.0, double fmax = 17000.0, bool equal = false); SpectrogramResult spectrogram(std::shared_ptr audio, int frameSize, double fps, const Eigen::MatrixXf &filterbank, bool log = false, float mul = 1.f, float add = 1.f, int blockSize = 2048, bool useLgd = false); Eigen::ArrayXf superflux(const SpectrogramResult &spectrogram, float ratio); Eigen::ArrayXf complexflux(const SpectrogramResult &spectrogram, const Eigen::MatrixXf &filterbank, float ratio);