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

Generates a square wave sound. More...

#include <SoundGenerator.h>

Inheritance diagram for SquareWaveGenerator< T >:
FastSineGenerator< T > SineGenerator< T > SoundGenerator< T >

Public Member Functions

 SquareWaveGenerator (float amplitude=32767.0f, float phase=0.0f)
 
virtual AudioInfo audioInfo ()
 Provides the AudioInfo.
 
bool begin () override
 Starts the processing.
 
bool begin (AudioInfo info) override
 Starts the processing with the provided AudioInfo.
 
bool begin (AudioInfo info, float frequency)
 
bool begin (int channels, int sample_rate, float frequency)
 
virtual AudioInfo defaultConfig () override
 Provides the default configuration.
 
virtual void end ()
 Ends the processing.
 
virtual bool isActive ()
 Checks if the begin method has been called - after end() isActive is false.
 
virtual size_t readBytes (uint8_t *data, size_t len)
 Provides the data as byte array with the requested number of channels.
 
virtual T readSample ()
 Provides a single sample.
 
void setAmplitude (float amp)
 
virtual void setAudioInfo (AudioInfo info) override
 Defines/updates the AudioInfo.
 
void setFrequency (float frequency) override
 Defines the frequency - after the processing has been started.
 
void setPlayTime (uint32_t playMs, uint8_t upPercent=20, uint8_t downPercent=30)
 Defines the play time in ms and the ramp up and ramp down time in percent.
 

Protected Member Functions

T applyRamp (T sample)
 
void logStatus ()
 
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 ()
 
float sine (float t)
 sine approximation.
 
T value (T value, T amplitude)
 

Protected Attributes

bool active = false
 
bool activeWarningIssued = false
 
uint32_t currentSample = 0
 
const float double_Pi = 2.0f * PI
 
uint8_t downPercent = 40
 
float factor = 1.0f
 
AudioInfo info
 
float m_amplitude = 1.0f
 
float m_cycles = 0.0f
 
float m_deltaTime = 0.0f
 
volatile float m_frequency = 0.0f
 
float m_phase = 0.0f
 
uint32_t playMs = 0
 
uint32_t playSamples = 0
 
float rampDownDec = 0.0
 
uint32_t rampDownSamples = 0
 
float rampUpInc = 0.0
 
RingBuffer< uint8_tring_buffer {0}
 
uint8_t upPercent = 5
 
uint32_t upSamples = 0
 

Detailed Description

template<class T = int16_t>
class audio_tools::SquareWaveGenerator< T >

Generates a square wave sound.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ SquareWaveGenerator()

template<class T = int16_t>
SquareWaveGenerator ( float  amplitude = 32767.0f,
float  phase = 0.0f 
)
inline

Member Function Documentation

◆ applyRamp()

template<class T = int16_t>
T applyRamp ( T  sample)
inlineprotectedinherited

◆ audioInfo()

template<class T = int16_t>
virtual AudioInfo audioInfo ( )
inlinevirtualinherited

Provides the AudioInfo.

◆ begin() [1/4]

template<class T = int16_t>
bool begin ( )
inlineoverridevirtualinherited

Starts the processing.

Reimplemented from SoundGenerator< T >.

◆ begin() [2/4]

template<class T = int16_t>
bool begin ( AudioInfo  info)
inlineoverridevirtualinherited

Starts the processing with the provided AudioInfo.

Reimplemented from SoundGenerator< T >.

◆ begin() [3/4]

template<class T = int16_t>
bool begin ( AudioInfo  info,
float  frequency 
)
inlineinherited

◆ begin() [4/4]

template<class T = int16_t>
bool begin ( int  channels,
int  sample_rate,
float  frequency 
)
inlineinherited

◆ defaultConfig()

template<class T = int16_t>
virtual AudioInfo defaultConfig ( )
inlineoverridevirtualinherited

Provides the default configuration.

Reimplemented from SoundGenerator< T >.

◆ end()

template<class T = int16_t>
virtual void end ( )
inlinevirtualinherited

Ends the processing.

Reimplemented in GeneratorFromArray< T >.

◆ isActive()

template<class T = int16_t>
virtual bool isActive ( )
inlinevirtualinherited

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

◆ logStatus()

template<class T = int16_t>
void logStatus ( )
inlineprotectedinherited

◆ readBytes()

template<class T = int16_t>
virtual size_t readBytes ( uint8_t data,
size_t  len 
)
inlinevirtualinherited

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

◆ readBytesFrames()

template<class T = int16_t>
size_t readBytesFrames ( uint8_t buffer,
size_t  lengthBytes,
int  frames,
int  channels 
)
inlineprotectedinherited

◆ readBytesFromBuffer()

template<class T = int16_t>
size_t readBytesFromBuffer ( uint8_t buffer,
size_t  lengthBytes,
int  frame_size,
int  channels 
)
inlineprotectedinherited

◆ readSample()

template<class T = int16_t>
virtual T readSample ( )
inlinevirtual

Provides a single sample.

Reimplemented from FastSineGenerator< T >.

◆ recalculatePlayTime()

template<class T = int16_t>
void recalculatePlayTime ( )
inlineprotectedinherited

◆ setAmplitude()

template<class T = int16_t>
void setAmplitude ( float  amp)
inlineinherited

◆ setAudioInfo()

template<class T = int16_t>
virtual void setAudioInfo ( AudioInfo  info)
inlineoverridevirtualinherited

Defines/updates the AudioInfo.

Reimplemented from SoundGenerator< T >.

◆ setFrequency()

template<class T = int16_t>
void setFrequency ( float  frequency)
inlineoverridevirtualinherited

Defines the frequency - after the processing has been started.

Reimplemented from SoundGenerator< T >.

◆ setPlayTime()

template<class T = int16_t>
void setPlayTime ( uint32_t  playMs,
uint8_t  upPercent = 20,
uint8_t  downPercent = 30 
)
inlineinherited

Defines the play time in ms and the ramp up and ramp down time in percent.

◆ sine()

template<class T = int16_t>
float sine ( float  t)
inlineprotectedinherited

sine approximation.

◆ value()

template<class T = int16_t>
T value ( T  value,
T  amplitude 
)
inlineprotected

Member Data Documentation

◆ active

template<class T = int16_t>
bool active = false
protectedinherited

◆ activeWarningIssued

template<class T = int16_t>
bool activeWarningIssued = false
protectedinherited

◆ currentSample

template<class T = int16_t>
uint32_t currentSample = 0
protectedinherited

◆ double_Pi

template<class T = int16_t>
const float double_Pi = 2.0f * PI
protectedinherited

◆ downPercent

template<class T = int16_t>
uint8_t downPercent = 40
protectedinherited

◆ factor

template<class T = int16_t>
float factor = 1.0f
protectedinherited

◆ info

template<class T = int16_t>
AudioInfo info
protectedinherited

◆ m_amplitude

template<class T = int16_t>
float m_amplitude = 1.0f
protectedinherited

◆ m_cycles

template<class T = int16_t>
float m_cycles = 0.0f
protectedinherited

◆ m_deltaTime

template<class T = int16_t>
float m_deltaTime = 0.0f
protectedinherited

◆ m_frequency

template<class T = int16_t>
volatile float m_frequency = 0.0f
protectedinherited

◆ m_phase

template<class T = int16_t>
float m_phase = 0.0f
protectedinherited

◆ playMs

template<class T = int16_t>
uint32_t playMs = 0
protectedinherited

◆ playSamples

template<class T = int16_t>
uint32_t playSamples = 0
protectedinherited

◆ rampDownDec

template<class T = int16_t>
float rampDownDec = 0.0
protectedinherited

◆ rampDownSamples

template<class T = int16_t>
uint32_t rampDownSamples = 0
protectedinherited

◆ rampUpInc

template<class T = int16_t>
float rampUpInc = 0.0
protectedinherited

◆ ring_buffer

template<class T = int16_t>
RingBuffer<uint8_t> ring_buffer {0}
protectedinherited

◆ upPercent

template<class T = int16_t>
uint8_t upPercent = 5
protectedinherited

◆ upSamples

template<class T = int16_t>
uint32_t upSamples = 0
protectedinherited

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