Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AudioRealFFT Class Reference

AudioFFT using RealFFT. More...

#include <AudioRealFFT.h>

Inheritance diagram for AudioRealFFT:
AudioFFTBase AudioOutput Print AudioInfoSupport AudioInfoSource

Public Member Functions

virtual void addNotifyAudioChange (AudioInfoSupport &bi)
 Adds target to be notified about audio changes.
virtual AudioInfo audioInfo () override
 provides the actual input AudioInfo
virtual AudioInfo audioInfoOut ()
 provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
int availableForWrite () override
 We try to fill the buffer at once.
virtual bool begin ()
bool begin (AudioFFTConfig info)
 starts the processing
virtual bool begin (AudioInfo info)
virtual void clearNotifyAudioChange ()
 Deletes all change notify subscriptions.
AudioFFTConfigconfig ()
 Provides the actual configuration.
AudioFFTConfig defaultConfig ()
 Provides the default configuration.
FFTDriverdriver ()
 provides access to the FFTDriver which implements the basic FFT functionality
FFTDriverRealFFTdriverEx ()
void end () override
 Release the allocated memory.
virtual void flush ()
float frequency (int bin)
 Determines the frequency of the indicated bin.
float * ifft (float *real, float *complex)
 Inverse fft - convert fft result back to time domain (samples)
float * imgArray ()
 Provides the complex array returned by the FFT

virtual bool isDeletable ()
 If true we need to release the related memory in the destructor.
bool isNotifyActive ()
 Checks if the automatic AudioInfo update is active.
int length ()
 The number of samples.
float magnitude (int bin)
 Calculates the magnitude of the fft result to determine the max value (bin is 0 to size())
float magnitudeFast (int bin)
float * magnitudes ()
 Provides the magnitudes as array of size size(). Please note that this method is allocating additinal memory!
float * magnitudesFast ()
 Provides the magnitudes w/o calling the square root function as array of size size(). Please note that this method is allocating additinal memory!
 operator bool ()
float * realArray ()
 Provides the real array returned by the FFT.
virtual bool removeNotifyAudioChange (AudioInfoSupport &bi)
 Removes a target in order not to be notified about audio changes.
void reset ()
 Just resets the current_pos e.g. to start a new cycle.
AudioFFTResult result ()
 Determines the result values in the max magnitude bin.
template<int N>
void resultArray (AudioFFTResult(&result)[N])
 Determines the N biggest result values.
unsigned long resultTime ()
 time after the fft: time when the last result was provided - you can poll this to check if we have a new result
unsigned long resultTimeBegin ()
 time before the fft
void setAudioInfo (AudioInfo info) override
 Notify change of audio information.
void setNotifyActive (bool flag)
 Deactivate/Reactivate automatic AudioInfo updates: (default is active)
int size ()
 The number of bins used by the FFT which are relevant for the result.
size_t write (const uint8_t *data, size_t len) override
 Provide the audio data as FFT input.
virtual size_t write (uint8_t ch) override
virtual void writeSilence (size_t len)

Protected Member Functions

int bytesPerSample ()
template<typename T >
void fft ()
template<int N>
void insertSorted (AudioFFTResult(&result)[N], AudioFFTResult tmp)
 make sure that we do not reuse already found results
bool isPowerOfTwo (uint16_t x)
void notifyAudioChange (AudioInfo info)
template<typename T >
void processSamples (const void *data, size_t samples)
template<typename T >
windowedSample (T sample)
void writeStrideBuffer (uint8_t *buffer, size_t len)

Protected Attributes

int _timeout = 10
int bins = 0
AudioFFTConfig cfg
int current_pos = 0
bool is_active = false
bool is_notify_active = true
Vector< AudioInfoSupport * > notify_vector
FFTDriverp_driver =nullptr
float * p_magnitudes = nullptr
RingBuffer< uint8_t > stride_buffer {0}
unsigned long timestamp =0l
unsigned long timestamp_begin =0l
SingleBuffer< uint8_t > tmp {MAX_SINGLE_CHARS}
int tmpPos = 0

Detailed Description

AudioFFT using RealFFT.

Phil Schatzmann

Member Function Documentation

◆ writeSilence()

virtual void writeSilence ( size_t  len)

Writes n 0 values (= silence)


The documentation for this class was generated from the following file: