https://github.com/geraintluff/jsfx-fft-big
Longer FFT implementation for JSFX
https://github.com/geraintluff/jsfx-fft-big
Last synced: about 1 year ago
JSON representation
Longer FFT implementation for JSFX
- Host: GitHub
- URL: https://github.com/geraintluff/jsfx-fft-big
- Owner: geraintluff
- Created: 2017-01-16T12:04:09.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-01-16T12:22:53.000Z (over 9 years ago)
- Last Synced: 2025-01-28T21:18:25.074Z (over 1 year ago)
- Homepage:
- Size: 7.81 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Large FFTs for JSFX
The FFT function [in REAPER](http://www.reaper.fm/sdk/js/advfunc.php#fft) only supports sizes up to 32768 (complex pairs).
For longer FFTs (such as required by [PadSynth](https://github.com/geraintluff/jsfx-pad-synth)), you can calculate the FFT as a combination of shorter FFTs (Cooley-Tukey factorisation).
## How to use:
You can either include it, or copy the functions from `fft_big.jsfx` into your code.
```
fft_big(block, N, working_space);
ifft_big(block, N, working_space);
```
The results of these functions are *in order* - that is, there is no `fft_big_permute()` function because that's already included in `fft_big()`.
The implementation (currently) requires some free memory to use for intermediate values, which is passed in as the `working_space` parameter. This working space needs to be 256 slots long.
## License
Do whatever you want with this code, just don't blame me. :) Bug reports appreciated.