arduino-audio-tools
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AudioEffects< GeneratorT > Class Template Reference

OBSOLETE AudioEffects: the template class describes the input audio to which the effects are applied: e.g. SineWaveGenerator, SquareWaveGenerator, GeneratorFromStream etc. We support only one channel of int16_t data! More...

#include <AudioEffects.h>

Inheritance diagram for AudioEffects< GeneratorT >:
SoundGenerator< effect_t >

Public Member Functions

 AudioEffects ()=default
 Default constructor.
 
 AudioEffects (AudioEffects &copy)
 Copy constructor.
 
 AudioEffects (GeneratorT &generator)
 Constructor which is assigning a generator.
 
 AudioEffects (Stream &input, int channels=2, float volume=1.0)
 
virtual ~AudioEffects ()
 Destructor.
 
void addEffect (AudioEffect &effect)
 Adds an effect object (by reference)
 
void addEffect (AudioEffect *effect)
 Adds an effect using a pointer.
 
virtual AudioInfo audioInfo ()
 Provides the AudioInfo.
 
virtual bool begin ()
 
virtual bool begin (AudioInfo info)
 
void clear ()
 deletes all defined effects
 
virtual AudioInfo defaultConfig ()
 Provides the default configuration.
 
virtual void end ()
 ends the processing
 
AudioEffectfindEffect (int id)
 Finds an effect by id.
 
GeneratorTgenerator ()
 Provides access to the sound generator.
 
virtual bool isActive ()
 
AudioEffectoperator[] (int idx)
 gets an effect by index
 
virtual size_t readBytes (uint8_t *data, size_t len)
 Provides the data as byte array with the requested number of channels.
 
effect_t readSample () override
 provides the resulting sample
 
virtual void setAudioInfo (AudioInfo info)
 Defines/updates the AudioInfo.
 
virtual void setFrequency (float frequency)
 Abstract method: not implemented! Just provides an error message...
 
void setInput (GeneratorT &in)
 Defines the input source for the raw guitar input.
 
void setPlayTime (uint32_t playMs, uint8_t upPercent=20, uint8_t downPercent=30)
 
size_t size ()
 Provides the actual number of defined effects.
 

Protected Member Functions

effect_t applyRamp (effect_t sample)
 
size_t readBytesFrames (uint8_t *buffer, size_t lengthBytes, int frames, int channels)
 
size_t readBytesFromBuffer (uint8_t *buffer, size_t lengthBytes, int frame_size, int channels)
 
void recalculatePlayTime ()
 

Protected Attributes

bool active
 
bool activeWarningIssued
 
uint32_t currentSample
 
uint8_t downPercent
 
AudioEffectCommon effects
 
float factor
 
AudioInfo info
 
bool owns_generator = false
 
GeneratorTp_generator =nullptr
 
uint32_t playMs
 
uint32_t playSamples
 
float rampDownDec
 
uint32_t rampDownSamples
 
float rampUpInc
 
RingBuffer< uint8_tring_buffer
 
uint8_t upPercent
 
uint32_t upSamples
 

Detailed Description

template<class GeneratorT>
class audio_tools::AudioEffects< GeneratorT >

OBSOLETE AudioEffects: the template class describes the input audio to which the effects are applied: e.g. SineWaveGenerator, SquareWaveGenerator, GeneratorFromStream etc. We support only one channel of int16_t data!

We subclass the AudioEffects from GeneratorT so that we can use this class with the GeneratedSoundStream class to output the audio.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ AudioEffects() [1/4]

template<class GeneratorT >
AudioEffects ( )
default

Default constructor.

◆ AudioEffects() [2/4]

template<class GeneratorT >
AudioEffects ( AudioEffects< GeneratorT > &  copy)
inline

Copy constructor.

◆ AudioEffects() [3/4]

template<class GeneratorT >
AudioEffects ( GeneratorT generator)
inline

Constructor which is assigning a generator.

◆ AudioEffects() [4/4]

template<class GeneratorT >
AudioEffects ( Stream input,
int  channels = 2,
float  volume = 1.0 
)
inline

Constructor which is assigning a Stream as input. The stream must consist of int16_t values with the indicated number of channels. Type type parameter is e.g. <GeneratorFromStream<effect_t>

◆ ~AudioEffects()

template<class GeneratorT >
virtual ~AudioEffects ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ addEffect() [1/2]

template<class GeneratorT >
void addEffect ( AudioEffect effect)
inline

Adds an effect object (by reference)

◆ addEffect() [2/2]

template<class GeneratorT >
void addEffect ( AudioEffect effect)
inline

Adds an effect using a pointer.

◆ applyRamp()

effect_t applyRamp ( effect_t  sample)
inlineprotectedinherited

◆ audioInfo()

virtual AudioInfo audioInfo ( )
inlinevirtualinherited

Provides the AudioInfo.

◆ begin() [1/2]

virtual bool begin ( )
inlinevirtualinherited

◆ begin() [2/2]

virtual bool begin ( AudioInfo  info)
inlinevirtualinherited

◆ clear()

template<class GeneratorT >
void clear ( )
inline

deletes all defined effects

◆ defaultConfig()

virtual AudioInfo defaultConfig ( )
inlinevirtualinherited

Provides the default configuration.

◆ end()

virtual void end ( )
inlinevirtualinherited

ends the processing

◆ findEffect()

template<class GeneratorT >
AudioEffect * findEffect ( int  id)
inline

Finds an effect by id.

◆ generator()

template<class GeneratorT >
GeneratorT & generator ( )
inline

Provides access to the sound generator.

◆ isActive()

virtual bool isActive ( )
inlinevirtualinherited

Checks if the begin method has been called - after end() isActive returns false

◆ operator[]()

template<class GeneratorT >
AudioEffect * operator[] ( int  idx)
inline

gets an effect by index

◆ readBytes()

virtual size_t readBytes ( uint8_t *  data,
size_t  len 
)
inlinevirtualinherited

Provides the data as byte array with the requested number of channels.

◆ readBytesFrames()

size_t readBytesFrames ( uint8_t *  buffer,
size_t  lengthBytes,
int  frames,
int  channels 
)
inlineprotectedinherited

◆ readBytesFromBuffer()

size_t readBytesFromBuffer ( uint8_t *  buffer,
size_t  lengthBytes,
int  frame_size,
int  channels 
)
inlineprotectedinherited

◆ readSample()

template<class GeneratorT >
effect_t readSample ( )
inlineoverridevirtual

provides the resulting sample

Implements SoundGenerator< effect_t >.

◆ recalculatePlayTime()

void recalculatePlayTime ( )
inlineprotectedinherited

◆ setAudioInfo()

virtual void setAudioInfo ( AudioInfo  info)
inlinevirtualinherited

Defines/updates the AudioInfo.

◆ setFrequency()

virtual void setFrequency ( float  frequency)
inlinevirtualinherited

Abstract method: not implemented! Just provides an error message...

◆ setInput()

template<class GeneratorT >
void setInput ( GeneratorT in)
inline

Defines the input source for the raw guitar input.

◆ setPlayTime()

void setPlayTime ( uint32_t  playMs,
uint8_t  upPercent = 20,
uint8_t  downPercent = 30 
)
inlineinherited

◆ size()

template<class GeneratorT >
size_t size ( )
inline

Provides the actual number of defined effects.

Member Data Documentation

◆ active

bool active
protectedinherited

◆ activeWarningIssued

bool activeWarningIssued
protectedinherited

◆ currentSample

uint32_t currentSample
protectedinherited

◆ downPercent

uint8_t downPercent
protectedinherited

◆ effects

template<class GeneratorT >
AudioEffectCommon effects
protected

◆ factor

float factor
protectedinherited

◆ info

AudioInfo info
protectedinherited

◆ owns_generator

template<class GeneratorT >
bool owns_generator = false
protected

◆ p_generator

template<class GeneratorT >
GeneratorT* p_generator =nullptr
protected

◆ playMs

uint32_t playMs
protectedinherited

◆ playSamples

uint32_t playSamples
protectedinherited

◆ rampDownDec

float rampDownDec
protectedinherited

◆ rampDownSamples

uint32_t rampDownSamples
protectedinherited

◆ rampUpInc

float rampUpInc
protectedinherited

◆ ring_buffer

RingBuffer<uint8_t> ring_buffer
protectedinherited

◆ upPercent

uint8_t upPercent
protectedinherited

◆ upSamples

uint32_t upSamples
protectedinherited

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