21 #ifndef HX3D_AUDIO_DISPLAY_SPECTRUM 22 #define HX3D_AUDIO_DISPLAY_SPECTRUM 24 #include "hx3d/audio/display.hpp" 25 #include "hx3d/math/constants.hpp" 77 Spectrum(
const unsigned int minFreq,
const unsigned int maxFreq,
const unsigned int barCount);
89 Spectrum(
const unsigned int minFreq,
const unsigned int maxFreq,
const unsigned int barCount,
const int refreshDelay);
92 virtual void update(
const Sint16* stream,
const int length,
const float delta)
override;
116 unsigned int _minFreq;
118 unsigned int _maxFreq;
120 unsigned int _barCount;
125 std::vector<float> _fftValues;
127 std::vector<float> _barValues;
129 std::vector<float> _normalizedBarValues;
131 std::vector<unsigned int> _barFrequencies;
141 int nextCenterFreq(
const int centerFreq,
const float octaves);
151 int prevCenterFreq(
const int centerFreq,
const float octaves);
161 int lowerLimit(
const int centerFreq,
const float octaves);
173 int lowerLimitSample(
const int centerFreq,
const float octaves,
const int samplesLength);
183 int upperLimit(
const int centerFreq,
const float octaves);
195 int upperLimitSample(
const int centerFreq,
const float octaves,
const int samplesLength);
206 float averageFreq(
const std::vector<float>& values,
const int low,
const int hi);
218 float calculateOctave(
const unsigned int lowFreq,
const unsigned int hiFreq,
const unsigned int bars);
Audio spectrum displaying.
virtual void update(const Sint16 *stream, const int length, const float delta) override
Update the display.
Spectrum(const unsigned int minFreq, const unsigned int maxFreq, const unsigned int barCount)
Create an empty spectrum with a refresh delay of 50.
float getNormalizedFrequencyAmplitude(const unsigned int frequency, const unsigned int range)
Get the average normalized amplitude for a center frequency and a range.
virtual void onInitialization() override
Use this to execute code after initialization.
unsigned int getBarCount()
Get the bar count.