Wiki » History » Version 1

Chris Cannam, 2015-10-07 02:48 PM

1 1 Chris Cannam
h1. Things tried
2 1 Chris Cannam
3 1 Chris Cannam
h2. FFT implementations
4 1 Chris Cannam
5 1 Chris Cannam
"Test page here":http://all-day-breakfast.com/js-dsp-test/fft/ to run in the browser, if you wish.
6 1 Chris Cannam
7 1 Chris Cannam
I've tested only forward real-to-complex at this point (I haven't even checked that the inverse transforms produce the right results).
8 1 Chris Cannam
9 1 Chris Cannam
h3. Candidates
10 1 Chris Cannam
11 1 Chris Cannam
h4. Javascript source
12 1 Chris Cannam
13 1 Chris Cannam
* "FFT by Nayuki":http://www.nayuki.io/page/free-small-fft-in-multiple-languages (multilingual) - complex-complex
14 1 Chris Cannam
* "FFT by Jens Nockert":https://github.com/JensNockert/fft.js (also on "npm":https://www.npmjs.com/package/fft) - real-complex
15 1 Chris Cannam
* "JSFFT by Nick Jones":https://github.com/dntj/jsfft - scales forward transform by 1/sqrt(n)
16 1 Chris Cannam
17 1 Chris Cannam
h4. Compiled-to-Javascript
18 1 Chris Cannam
19 1 Chris Cannam
* "KissFFT":http://kissfft.sourceforge.net/ - modest C implementation compiled with Emscripten
20 1 Chris Cannam
* "FFTW":http://www.fftw.org/ - all-consuming C implementation compiled with Emscripten
21 1 Chris Cannam
22 1 Chris Cannam
h4. Not tested
23 1 Chris Cannam
24 1 Chris Cannam
* "Timbre.js by mohayonao":http://mohayonao.github.io/timbre.js/fft.html - expects to be pipelined with other timbre.js classes - not pursuing
25 1 Chris Cannam
* "dsp.js by Corban Brook":https://github.com/corbanbrook/dsp.js - only supports real-real (i.e. mag spectrum) - not pursuing