Qt 阿奎拉音频频谱

Qt 阿奎拉音频频谱,qt,audio,histogram,spectrum,Qt,Audio,Histogram,Spectrum,这是我的代码: 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); sineGenerator

这是我的代码:

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
         }
const std::size\u t size=16;
常数Aquila::FrequencyType sampleFreq=44100;
const Aquila::FrequencyType f1=//左音频数据,f2=//右音频数据;
Aquila::SineGenerator sineGenerator1=Aquila::SineGenerator(sampleFreq);
正弦发生器1.设置振幅(大小).设置频率(f1).生成(大小);
Aquila::SineGenerator sineGenerator2=Aquila::SineGenerator(sampleFreq);
正弦发生器2.设置振幅(大小).设置频率(f2).生成(大小);
自动求和=正弦发电机1+正弦发电机2;
//计算FFT
自动fft=Aquila::FftFactory::getFft(大小);
Aquila::SpectrumType spectrum=fft->fft(sum.toArray())//创造复杂
int half length=spectrum.size()/2;
std::矢量谱(半长);
对于(int i=0;i
我想创建一个简单的音频可视化工具,我不知道这个代码是否正确。我能从Absectrum到histogram吗?也许有什么建议我能做什么