ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
MicrophoneFourierBase Class Reference

Base class for FFT-based microphone signal processing. More...

#include <MicrophoneFourierBase.h>

Inheritance diagram for MicrophoneFourierBase:
Collaboration diagram for MicrophoneFourierBase:

Static Public Member Functions

static float AverageMagnitude (uint16_t binL, uint16_t binH)
 Calculates the average magnitude of the specified FFT bins.
 
static bool IsInitialized ()
 Checks if the microphone system is initialized.
 
static float GetSampleRate ()
 Retrieves the current sampling rate.
 
static floatGetSamples ()
 Retrieves the raw input samples.
 
static floatGetFourier ()
 Retrieves the FFT output data.
 
static floatGetFourierFiltered ()
 Retrieves the filtered FFT output data.
 
static float GetCurrentMagnitude ()
 Retrieves the current signal magnitude.
 

Static Protected Attributes

static const uint16_t FFTSize = 256
 Size of the FFT (number of samples).
 
static const uint16_t OutputBins = 128
 Number of output bins from FFT processing.
 
static uint16_t sampleRate = 8000
 Sampling rate in Hz.
 
static uint8_t pin = 0
 Pin number for microphone input.
 
static float minDB = 50.0f
 Minimum decibel value for normalization.
 
static float maxDB = 120.0f
 Maximum decibel value for normalization.
 
static float threshold = 400.0f
 Threshold value for processing.
 
static float currentValue = 0.0f
 Current magnitude of the microphone signal.
 
static bool isInitialized = false
 Flag indicating if the system is initialized.
 
static DerivativeFilter peakFilterRate
 Filter for peak rate detection.
 
static float inputSamp [FFTSize *2]
 Raw input samples for FFT.
 
static float inputStorage [FFTSize]
 Storage for processed input samples.
 
static float outputMagn [FFTSize]
 Magnitude output from FFT.
 
static float outputData [OutputBins]
 Processed FFT data for output bins.
 
static float outputDataFilt [OutputBins]
 Filtered FFT data for output bins.
 
static FFTFilter fftFilters [OutputBins]
 Array of FFT filters for post-processing.
 
static FFT< FFTSizefft
 FFT processor instance.
 

Detailed Description

Base class for FFT-based microphone signal processing.

The MicrophoneFourierBase class provides foundational support for microphone signal processing, including FFT transformations, signal normalization, and filtering. Derived classes can extend its functionality for specific applications.

Definition at line 29 of file MicrophoneFourierBase.h.

Member Function Documentation

◆ AverageMagnitude()

float AverageMagnitude ( uint16_t  binL,
uint16_t  binH 
)
static

Calculates the average magnitude of the specified FFT bins.

Parameters
binLThe lower bound of the bin range (inclusive).
binHThe upper bound of the bin range (inclusive).
Returns
The average magnitude within the specified range.

Definition at line 23 of file MicrophoneFourierBase.cpp.

References FFTSize, and outputMagn.

Referenced by MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().

◆ GetCurrentMagnitude()

◆ GetFourier()

float * GetFourier ( )
static

Retrieves the FFT output data.

Returns
Pointer to the array of FFT output data.

Definition at line 46 of file MicrophoneFourierBase.cpp.

References outputData.

◆ GetFourierFiltered()

◆ GetSampleRate()

◆ GetSamples()

float * GetSamples ( )
static

Retrieves the raw input samples.

Returns
Pointer to the array of raw input samples.

Definition at line 42 of file MicrophoneFourierBase.cpp.

References inputStorage.

Referenced by ProtogenProject::OscilloscopeFace(), SergaliciousAnimation::Update(), and TechSaneAnimation::Update().

◆ IsInitialized()

bool IsInitialized ( )
static

Checks if the microphone system is initialized.

Returns
True if initialized, false otherwise.

Definition at line 34 of file MicrophoneFourierBase.cpp.

References isInitialized.

Member Data Documentation

◆ currentValue

float currentValue = 0.0f
staticprotected

Current magnitude of the microphone signal.

Definition at line 38 of file MicrophoneFourierBase.h.

◆ fft

FFT< MicrophoneFourierBase::FFTSize > fft
staticprotected

FFT processor instance.

Definition at line 50 of file MicrophoneFourierBase.h.

Referenced by MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().

◆ fftFilters

FFTFilter fftFilters
staticprotected

Array of FFT filters for post-processing.

Definition at line 48 of file MicrophoneFourierBase.h.

Referenced by MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().

◆ FFTSize

const uint16_t FFTSize = 256
staticprotected

◆ inputSamp

◆ inputStorage

float inputStorage
staticprotected

◆ isInitialized

bool isInitialized = false
staticprotected

Flag indicating if the system is initialized.

Definition at line 39 of file MicrophoneFourierBase.h.

Referenced by MicrophoneFourier::Initialize(), MicrophoneFourier::Initialize(), MicrophoneFourier::Initialize(), and IsInitialized().

◆ maxDB

float maxDB = 120.0f
staticprotected

◆ minDB

float minDB = 50.0f
staticprotected

◆ OutputBins

const uint16_t OutputBins = 128
staticprotected

Number of output bins from FFT processing.

Definition at line 32 of file MicrophoneFourierBase.h.

Referenced by MicrophoneFourier::Initialize(), MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().

◆ outputData

float outputData
staticprotected

Processed FFT data for output bins.

Definition at line 46 of file MicrophoneFourierBase.h.

Referenced by GetFourier(), MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().

◆ outputDataFilt

float outputDataFilt
staticprotected

Filtered FFT data for output bins.

Definition at line 47 of file MicrophoneFourierBase.h.

Referenced by GetFourierFiltered(), MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().

◆ outputMagn

float outputMagn
staticprotected

Magnitude output from FFT.

Definition at line 45 of file MicrophoneFourierBase.h.

Referenced by AverageMagnitude(), MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().

◆ peakFilterRate

DerivativeFilter peakFilterRate
staticprotected

Filter for peak rate detection.

Definition at line 41 of file MicrophoneFourierBase.h.

Referenced by MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().

◆ pin

uint8_t pin = 0
staticprotected

◆ sampleRate

◆ threshold

float threshold = 400.0f
staticprotected

Threshold value for processing.

Definition at line 37 of file MicrophoneFourierBase.h.

Referenced by GetCurrentMagnitude(), MicrophoneFourier::Update(), and MicrophoneFourier::UpdateDMA().


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