Использование FFT для разделения аудиосигнала на несколько полос - это излишне.
Вам нужен один или два фильтра Линквица-Райли. Эти фильтры разделяют сигнал на высокочастотную и низкочастотную части.
Хорошим свойством этого фильтра является то, что если вы добавите низкочастотные и высокочастотные части, вы получите почти исходный сигнал обратно. Будет небольшой сдвиг фазы, но ухо не сможет это услышать.
Если вам нужно более двух полос, вы можете связать фильтры. Например, если вы хотите разделить сигнал на 100 и 2000 Гц, он будет в псевдокоде примерно так:
low = linkwitz-riley-low (100, input-samples)
temp = linkwitz-riley-high (100, input-samples)
mids = linkwitz-riley-low (2000, temp)
highs = linkwitz-riley-high (2000, temp);
и т. Д. *
После разделения сигнала вы можете, например, усилить три выходные полосы: низкие, средние и высокие, а затем сложить их вместе, чтобы получить обработанный сигнал.
Сама секция фильтра может быть реализована с использованием БИХ-фильтров. Поиск в Google по запросу "Linkwitz-Riley digital IIR" должен дать много хороших результатов.
http://en.wikipedia.org/wiki/Linkwitz-Riley_filter