arduino-audio-tools
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SineFromTable< T > Class Template Reference

A sine generator based on a table. The table is created using degrees where one full wave is 360 degrees. More...

#include <SoundGenerator.h>

Inheritance diagram for SineFromTable< T >:
SoundGenerator< T >

Public Member Functions

 SineFromTable (float amplitude=32767.0)
 
virtual AudioInfo audioInfo ()
 Provides the AudioInfo.
 
bool begin ()
 
virtual bool begin (AudioInfo info)
 
bool begin (AudioInfo info, float frequency)
 
bool begin (int channels, int sample_rate, uint16_t frequency=0)
 
virtual AudioInfo defaultConfig ()
 Provides the default configuration.
 
virtual void end ()
 ends the processing
 
virtual bool isActive ()
 
virtual size_t readBytes (uint8_t *buffer, size_t lengthBytes)
 Provides the data as byte array with the requested number of channels.
 
readSample ()
 Provides a single sample.
 
void setAmplitude (float amplitude)
 Defines the new amplitude (volume)
 
virtual void setAudioInfo (AudioInfo info)
 Defines/updates the AudioInfo.
 
void setFrequency (float freq)
 Abstract method: not implemented! Just provides an error message...
 
void setMaxAmplitudeStep (float step)
 

Protected Member Functions

interpolate (float angle)
 
map (T x, T in_min, T in_max, T out_min, T out_max)
 
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 updateAmplitudeInSteps ()
 

Protected Attributes

bool active = false
 
bool activeWarningIssued = false
 
float amplitude
 
float amplitude_to_be
 
float angle = 0.0f
 
float base_frequency = 1.0f
 
AudioInfo info
 
bool is_first = true
 
float max_amplitude_step = 50.0f
 
RingBuffer< uint8_t > ring_buffer {0}
 
float step = 1.0f
 
float step_new = 1.0f
 
const float values [181]
 

Detailed Description

template<class T>
class audio_tools::SineFromTable< T >

A sine generator based on a table. The table is created using degrees where one full wave is 360 degrees.

Author
Phil Schatzmann

Member Function Documentation

◆ isActive()

virtual bool isActive ( )
inlinevirtualinherited

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

◆ setMaxAmplitudeStep()

void setMaxAmplitudeStep ( float  step)
inline

To avoid pops we do not allow to big amplitude changes at once and spread them over time


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