MTG / essentia.js

JavaScript library for music/audio analysis and processing powered by Essentia WebAssembly
https://essentia.upf.edu/essentiajs
GNU Affero General Public License v3.0
645 stars 42 forks source link

General documentation terminology: STFT #98

Open Oortone opened 2 years ago

Oortone commented 2 years ago

What is the issue about?

What part(s) of Essentia.js is involved?

Description

Sorry for my documentation spamming but I must also ask this: While searchng for a general FFT method in Essentia.js (not finding it specifically for *.js) I found the FFT algorithm in the upstream Essentita Algorithm Reference. However I'm puzzled by the terminology. It says: "This algorithm computes the positive complex short-term Fourier transform (STFT) of an array using the FFT algorithm."

But a STFT (Short Term Fourier Transform) will not produce one single vector with FFT-values as presented here but a vector of vectors of FFT:s. Each corresponding to one analysis window. Also you would expect to be able to set hop-length and window-function when calling an STFT. Here's an example in Python from Librosa.

Why are you calling a regular single FFT STFT in the documentation? Is this related to some specific usage case I'm missing?

Also, I might take the opportunity to ask if there's no FFT (or STFT) in the js-version? Spectrum covers most cases but not if I want to extract phase.

Steps to reproduce / Code snippets / Screenshots

-

System info

not system related, Essentia.js 0.1.3