So I know that the amount of bands you assign to an FFT needs to be a power of 2, but when I go over 2^14 (16384) to 2^15 (32768) bands, I get the fft.analyze(spectrum) code highlighted and the error code - ArrayIndexOutOfBoundsException. Is this a limitation of hardware, processing or something else? Is there a way around this? There are many more frequencies than 16384 so this is really inconvenient.

Example code of the problem below.

```
import processing.sound.*;
SinOsc sin;
FFT fft;
int bands = 16384; //32768 is out of bounds.
float[] spectrum = new float[bands];
void setup() {
sin = new SinOsc(this);
fft = new FFT(this, bands);
fft.input(sin);
}
void draw() {
}
void mouseReleased() {
sin.stop();
sin.play(440, 1);
fft.analyze(spectrum);
}
```