|
arduino-audio-tools
|
A sine generator based on a table. The table is created using degrees where one full wave is 360 degrees. More...
#include <SoundGenerator.h>
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 *data, size_t len) |
| Provides the data as byte array with the requested number of channels. | |
| T | 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) |
| void | setPlayTime (uint32_t playMs, uint8_t upPercent=20, uint8_t downPercent=30) |
Protected Member Functions | |
| T | applyRamp (T sample) |
| T | interpolate (float angle) |
| T | 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 | recalculatePlayTime () |
| 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 |
| uint32_t | currentSample = 0 |
| uint8_t | downPercent = 40 |
| float | factor = 1.0f |
| AudioInfo | info |
| bool | is_first = true |
| float | max_amplitude_step = 50.0f |
| uint32_t | playMs = 0 |
| uint32_t | playSamples = 0 |
| float | rampDownDec = 0.0 |
| uint32_t | rampDownSamples = 0 |
| float | rampUpInc = 0.0 |
| RingBuffer< uint8_t > | ring_buffer {0} |
| float | step = 1.0f |
| float | step_new = 1.0f |
| uint8_t | upPercent = 5 |
| uint32_t | upSamples = 0 |
| const float | values [181] |
A sine generator based on a table. The table is created using degrees where one full wave is 360 degrees.
|
inline |
Provides the AudioInfo.
Reimplemented from SoundGenerator< T >.
Provides the default configuration.
Reimplemented in STKGenerator< StkCls, T >, STKGenerator< stk::Instrmnt, int16_t >, STKGenerator< StkCls, int16_t >, SineWaveGenerator< T >, and SineWaveGenerator< int16_t >.
ends the processing
Reimplemented in GeneratorFromArray< T >.
Checks if the begin method has been called - after end() isActive returns false
Provides the data as byte array with the requested number of channels.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Provides a single sample.
Implements SoundGenerator< T >.
Defines the new amplitude (volume)
Defines/updates the AudioInfo.
Reimplemented in SineWaveGenerator< T >, and SineWaveGenerator< int16_t >.
Abstract method: not implemented! Just provides an error message...
Reimplemented from SoundGenerator< T >.
To avoid pops we do not allow to big amplitude changes at once and spread them over time
|
inlineinherited |
|
protectedinherited |