Aquila аудио спектр
Это мой код:
const std::size_t SIZE = 16;
const Aquila::FrequencyType sampleFreq = 44100;
const Aquila::FrequencyType f1 = //left audio data, f2 = //right audio data;
Aquila::SineGenerator sineGenerator1 = Aquila::SineGenerator(sampleFreq);
sineGenerator1.setAmplitude(SIZE).setFrequency(f1).generate(SIZE);
Aquila::SineGenerator sineGenerator2 = Aquila::SineGenerator(sampleFreq);
sineGenerator2.setAmplitude(SIZE).setFrequency(f2).generate(SIZE);
auto sum = sineGenerator1 + sineGenerator2;
// calculate the FFT
auto fft = Aquila::FftFactory::getFft(SIZE);
Aquila::SpectrumType spectrum = fft->fft(sum.toArray());//create complex
int halfLength = spectrum.size() / 2;
std::vector<double> absSpectrum(halfLength);
for (int i = 0; i < absSpectrum.size(); ++i)
{
absSpectrum[i] = std::abs(spectrum[i]);//returns the magnitude of a complex number
}
Я хочу создать простой аудио-визуализатор, и я не знаю, правильный ли этот код. Могу ли я перейти на absSectrum к гистограмме? Может быть, любое предложение, что я могу сделать.