21#include <JuceHeader.h>
53 void setUseProcessingTypes(
bool useLevelProcessing,
bool useBufferProcessing,
bool useSepctrumProcessing);
67 juce::String&
GetName() {
return m_Name; };
69 bool IsInitialized() {
return (m_bufferSize != 0 && m_sampleRate != 0); };
77 void analyzeData(
const juce::AudioBuffer<float>& buffer);
106 void processSpectrumForChannel(
int channelIndex,
const float* channelData,
int numSamples);
107 void performFFTAndUpdateSpectrum(
int channelIndex);
115 juce::Array<Listener*> m_callbackListeners;
116 std::mutex m_callbackListenersMutex;
119 juce::CriticalSection m_readLock;
121 float** m_processorChannels;
123 unsigned long m_sampleRate = 0;
124 int m_samplesPerCentiSecond = 0;
125 int m_bufferSize = 0;
126 int m_missingSamplesForCentiSecond = 0;
132 fftSize = 1 << fftOrder
135 dsp::WindowingFunction<float> m_windowF;
136 std::vector<std::vector<float>> m_FFTdata;
137 std::vector<int> m_FFTdataPos;
142 bool m_useLevelProcessing =
false;
143 bool m_useBufferProcessing =
false;
144 bool m_useSpectrumProcessing =
false;
Base class for all data objects exchanged between the audio processor and its analyzers/visualisers.
virtual void processingDataChanged(AbstractProcessorData *data)=0
Analyses a stream of audio buffers and broadcasts level and spectrum data to registered listeners.
bool isLevelProcessingUsed()
void addListener(Listener *listener)
void analyzeData(const juce::AudioBuffer< float > &buffer)
Submits a new audio buffer for analysis.
ProcessorAudioSignalData & GetCentiSecondBuffer()
void removeListener(Listener *listener)
static int getGlobalMaxdB()
void setUseProcessingTypes(bool useLevelProcessing, bool useBufferProcessing, bool useSepctrumProcessing)
Configures which data types (level, spectrum, audio signal) the analyzer computes.
static int getGlobalMindB()
ProcessorSpectrumData & GetSpectrum()
ProcessorLevelData & GetLevel()
bool isBufferProcessingUsed()
bool isSepctrumProcessingUsed()
void timerCallback() override
Timer callback that broadcasts pending data changes to all registered listeners.
void initializeParameters(double sampleRate, int bufferSize)
void setHoldTime(int holdTimeMs)