arduino-audio-tools
|
Abstract class for common Logic for FFT based effects. The effect is applied after the fft to the frequency domain before executing the ifft. Please note that this is quite processing time intensitive: so you might keep the sample rate quite low if the processor is not fast enough! More...
#include <FFTEffects.h>
Public Member Functions | |
FFTEffect (Print &out) | |
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 () |
virtual int | availableForWrite () override |
bool | begin () override |
virtual bool | begin (AudioInfo info) |
bool | begin (FFTEffectConfig info) |
virtual void | clearNotifyAudioChange () |
Deletes all change notify subscriptions. | |
FFTEffectConfig | defaultConfig () |
virtual void | end () |
virtual void | flush () |
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. | |
virtual | operator bool () |
virtual bool | removeNotifyAudioChange (AudioInfoSupport &bi) |
Removes a target in order not to be notified about audio changes. | |
virtual void | setAudioInfo (AudioInfo newInfo) override |
Defines the input AudioInfo. | |
void | setNotifyActive (bool flag) |
Deactivate/Reactivate automatic AudioInfo updates: (default is active) | |
size_t | write (const uint8_t *data, size_t len) override |
virtual size_t | write (uint8_t ch) override |
virtual void | writeSilence (size_t len) |
Protected Member Functions | |
virtual void | effect (AudioFFTBase &fft)=0 |
void | notifyAudioChange (AudioInfo info) |
void | processOutput () |
Static Protected Member Functions | |
static void | effect_callback (AudioFFTBase &fft) |
Protected Attributes | |
int | _timeout = 10 |
BufferedWindow | buffered {&hann} |
AudioInfo | cfg |
StreamCopy | copier |
AudioRealFFT | fft |
AudioFFTConfig | fft_cfg {fft.defaultConfig(RXTX_MODE)} |
Hann | hann |
bool | is_active = false |
bool | is_notify_active = true |
Vector< AudioInfoSupport * > | notify_vector |
Print * | p_out = nullptr |
SingleBuffer< uint8_t > | tmp {MAX_SINGLE_CHARS} |
int | tmpPos = 0 |
Abstract class for common Logic for FFT based effects. The effect is applied after the fft to the frequency domain before executing the ifft. Please note that this is quite processing time intensitive: so you might keep the sample rate quite low if the processor is not fast enough!
|
inlinevirtualinherited |
Adds target to be notified about audio changes.
Reimplemented in CodecNOP, EncodedAudioOutput, EncodedAudioStream, AACDecoderFDK, DecoderBasic, CodecChain, MP3DecoderHelix, MP3DecoderMAD, OggContainerDecoder, RTSPClient< TcpClient, UdpSocket >, Pipeline, and Pipeline::ModifyingStreamAdapter.
|
inlineoverridevirtualinherited |
provides the actual input AudioInfo
Implements AudioInfoSupport.
Reimplemented in AdapterPrintToAudioOutput, EncodedAudioOutput, and AdapterAudioStreamToAudioOutput.
|
inlinevirtualinherited |
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
Reimplemented in PureDataStream, PWMAudioOutput, ChannelFormatConverterStreamT< T >, ChannelFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, NumberFormatConverterStream, FormatConverterStream, Pipeline, ResampleStream, and ResampleStreamT< TInterpolator >.
|
inlineoverridevirtualinherited |
Reimplemented from Print.
Reimplemented in RTSPOutput< Platform >.
|
inlineoverridevirtual |
Reimplemented from AudioOutput.
|
inlinevirtualinherited |
Reimplemented in AudioESP32ULP, RTSPOutput< Platform >, CsvOutput< T >, and EncodedAudioOutput.
|
inlinevirtualinherited |
Deletes all change notify subscriptions.
Reimplemented in RTSPClient< TcpClient, UdpSocket >.
|
protectedpure virtual |
Implemented in FFTRobotize, FFTWhisper, FFTNop, and FFTPitchShift.
|
inlinevirtualinherited |
Reimplemented in RTSPOutput< Platform >, PitchShiftOutput< T, BufferT >, EncodedAudioOutput, and OggContainerOutput.
|
inlinevirtualinherited |
Reimplemented from Print.
|
inlinevirtualinherited |
If true we need to release the related memory in the destructor.
Reimplemented in AdapterPrintToAudioOutput, and AdapterAudioStreamToAudioOutput.
|
inlinevirtualinherited |
Reimplemented in RTSPOutput< Platform >, and EncodedAudioOutput.
|
inlinevirtualinherited |
Removes a target in order not to be notified about audio changes.
Reimplemented in RTSPClient< TcpClient, UdpSocket >.
|
inlineoverridevirtualinherited |
Defines the input AudioInfo.
Implements AudioInfoSupport.
Reimplemented in ChannelsSelectOutput, AdapterPrintToAudioOutput, MultiOutput, AdapterAudioStreamToAudioOutput, CsvOutput< T >, PWMAudioOutput, and EncodedAudioOutput.
|
inlineoverridevirtual |
Implements AudioOutput.
|
inlinevirtualinherited |
Writes n 0 values (= silence)
len |