arduino-audio-tools
|
Generic Implementation of sound input and output for desktop environments using portaudio. More...
Classes | |
class | A2DPChannelConverter |
Covnerts the data from T src[][2] to a Frame array. More... | |
class | A2DPConfig |
Configuration for A2DPStream. More... | |
class | A2DPStream |
Stream support for A2DP: begin(TX_MODE) uses a2dp_source - begin(RX_MODE) a a2dp_sink The data is in int16_t with 2 channels at 44100 hertz. We support only one instance of the class! More... | |
class | AACDecoderFDK |
Audio Decoder which decodes AAC into a PCM stream This is basically just a wrapper using https://github.com/pschatzmann/arduino-fdk-aac which uses AudioBaseInfo and provides the handlig of AudioBaseInfo changes. More... | |
class | AACDecoderHelix |
AAC Decoder using libhelix: https://github.com/pschatzmann/arduino-libhelix This is basically just a simple wrapper to provide AudioBaseInfo and AudioBaseInfoDependent. More... | |
class | AACEncoderFDK |
Encodes PCM data to the AAC format and writes the result to a stream This is basically just a wrapper using https://github.com/pschatzmann/arduino-fdk-aac. More... | |
class | AbstractMetaData |
Common Metadata methods. More... | |
class | AbstractParameter |
Base class for all parameters. More... | |
class | AbstractSynthesizerChannel |
Defines the sound generation for one channel. A channel is used to process an indivudual key so that we can generate multiple notes at the same time. More... | |
class | AbstractURLStream |
Abstract Base class for all URLStream implementations. More... | |
class | AdapterAudioStreamToAudioPrint |
Wrapper which converts a AudioStream to a AudioPrint. More... | |
class | AdapterPrintToAudioPrint |
Wrapper which converts a Print to a AudioPrint. More... | |
class | ADSR |
Generates ADSR values between 0.0 and 1.0. More... | |
class | ADSRGain |
ADSR Envelope: Attack, Decay, Sustain and Release. Attack is the time taken for initial run-up oeffect_tf level from nil to peak, beginning when the key is pressed. Decay is the time taken for the subsequent run down from the attack level to the designated sustainLevel level. Sustain is the level during the main sequence of the sound's duration, until the key is released. Release is the time taken for the level to decay from the sustainLevel level to zero after the key is released.[4]. More... | |
class | AnalogAudioStream |
ESP32: A very fast ADC and DAC using the ESP32 I2S interface. For all other architectures we support reading of audio only using analog input with a timer. More... | |
class | AnalogConfig |
ESP32 specific configuration for i2s input via adc. The default input pin is GPIO34. We always use int16_t values. The default output pins are GPIO25 and GPIO26! More... | |
class | AnalogDriverArduino |
Please use the AnalogAudioStream: Reading Analog Data using a timer and the Arduino analogRead() method. More... | |
class | AnalogDriverBase |
class | AnalogDriverESP32 |
Please use AnalogAudioStream: A very fast ADC and DAC using the ESP32 I2S interface. More... | |
class | APTXDecoder |
Decoder for OpenAptx. Depends on https://github.com/pschatzmann/libopenaptx. More... | |
class | APTXEncoder |
Encoder for OpenAptx - Depends on https://github.com/pschatzmann/libopenaptx. More... | |
class | AudioActions |
A simple class to assign Functions to Pins e.g. to implement a simple navigation control or volume control with buttons. More... | |
struct | AudioBaseInfo |
Basic Audio information which drives e.g. I2S. More... | |
class | AudioBaseInfoDependent |
Supports changes to the sampling rate, bits and channels. More... | |
class | AudioBaseInfoSource |
Supports the subscription to audio change notifications. More... | |
class | AudioCmsisFFT |
AudioFFT for ARM processors that provided Cmsis DSP. More... | |
struct | AudioConfirmDataToReceive |
Protocol Record for Request. More... | |
struct | AudioDataBegin |
Protocal Record To Start. More... | |
struct | AudioDataEnd |
Protocol Record for End. More... | |
class | AudioDecoder |
Docoding of encoded audio into PCM data. More... | |
class | AudioEffect |
Abstract Base class for Sound Effects. More... | |
class | AudioEffectCommon |
class | AudioEffects |
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... | |
class | AudioEffectStreamT |
EffectsStreamT: the template class describes an input or output stream to which one or multiple effects are applied. The number of channels are used to merge the samples of one frame into one sample before outputting the result as a frame (by repeating the result sample for each channel). Currently only int16_t values are supported, so I recommend to use the AudioEffectStream class which is defined as using AudioEffectStream = AudioEffectStreamT<effect_t>;. More... | |
class | AudioEncoder |
Encoding of PCM data. More... | |
class | AudioEncoderServer |
A simple Arduino Webserver which streams the audio using the indicated encoder.. This class is based on the WiFiServer class. All you need to do is to provide the data with a callback method or from a Stream. More... | |
class | AudioESP32FFT |
AudioFFT using RealFFT. More... | |
class | AudioEspressifFFT |
AudioFFT using FFTReal. The only specific functionality is the access to the dataArray. More... | |
class | AudioFFTBase |
Executes FFT using audio data. The Driver which is passed in the constructor selects a specifc FFT implementation. More... | |
struct | AudioFFTConfig |
Configuration for AudioFFT. If there are more then 1 channel the channel_used is defining which channel is used to perform the fft on. More... | |
struct | AudioFFTResult |
Result of the FFT. More... | |
struct | AudioHeader |
Common Header for all records. More... | |
struct | AudioInfoLAME |
LAME parameters. More... | |
class | AudioKissFFT |
AudioFFT using FFTReal. The only specific functionality is the access to the dataArray. More... | |
class | AudioKitStream |
AudioKit Stream which uses the https://github.com/pschatzmann/arduino-audiokit library. More... | |
class | AudioKitStreamAdapter |
Converts a AudioKit into a AudioStream, so that we can pass it to the converter. More... | |
class | AudioKitStreamConfig |
Configuration for AudioKitStream: we use as subclass of I2SConfig. More... | |
class | AudioLogger |
A simple Logger that writes messages dependent on the log level. More... | |
class | AudioMP34DT05 |
MP34DT05 Microphone of Nano BLE Sense. We provide a proper Stream implementation. See https://github.com/arduino/ArduinoCore-nRF528x-mbedos. More... | |
struct | AudioMP34DT05Config |
Config for MP34DT05 Microphone. Supported sample rates 16000, 41667, Supported bits_per_sample only 16. More... | |
class | AudioOutputWithCallback |
ESP8266Audio AudioOutput class which stores the data in a temporary buffer. The buffer can be consumed e.g. by a callback function by calling read();. More... | |
class | AudioPlayer |
Implements a simple audio player which supports the following commands: More... | |
class | AudioPrint |
Abstract Audio Ouptut class. More... | |
class | AudioRealFFT |
AudioFFT using RealFFT. More... | |
struct | AudioSendData |
Protocol Record for Data. More... | |
class | AudioServer |
A simple Arduino Webserver which streams the result This class is based on the WiFiServer class. All you need to do is to provide the data with a callback method or from an Arduino Stream: in -copy> client. More... | |
class | AudioServerEx |
A powerfull Web server which is based on https://github.com/pschatzmann/TinyHttp. It supports multiple concurrent clients. You can e.g. use it to write mp3 data and make it available in multiple clients. More... | |
struct | AudioServerExConfig |
Config information for AudioServerEx. More... | |
class | AudioSource |
Abstract Audio Data Source for the AudioPlayer which is used by the Audio Players. More... | |
class | AudioSourceCallback |
Callback Audio Data Source which is used by the Audio Players. More... | |
class | AudioSourceIdxSD |
ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD implementation Connect the SD card to the following pins: More... | |
class | AudioSourceIdxSDFAT |
ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD implementation Connect the SD card to the following pins: More... | |
class | AudioSourceIdxSDMMC |
ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD_MMC implementation Connect the SD card to the following pins: More... | |
class | AudioSourceLittleFS |
ESP32 AudioSource for AudioPlayer using an the LittleFS file system. More... | |
class | AudioSourceSD |
ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD implementation Connect the SD card to the following pins: More... | |
class | AudioSourceSDFAT |
ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD implementation Connect the SD card to the following pins: More... | |
class | AudioSourceSDMMC |
ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD_MMC implementation Connect the SD card to the following pins: More... | |
class | AudioSourceSPIFFS |
ESP32 AudioSource for AudioPlayer using an the SPIFFS file system. More... | |
class | AudioSourceURL |
Audio Source which provides the data via the network from an URL. More... | |
class | AudioStream |
Base class for all Audio Streams. It support the boolean operator to test if the object is ready with data. More... | |
class | AudioStreamWrapper |
To be used to support implementations where the readBytes is not virtual. More... | |
class | AudioStreamX |
Same as AudioStream - but we do not have any abstract methods. More... | |
class | AudioSyncReader |
Receving Audio Data over the wire and requesting for more data when done to synchronize the processing with the sender. The audio data is processed by the EncodedAudioStream; If you have multiple readers, only one receiver should be used as confirmer! More... | |
class | AudioSyncWriter |
Audio Writer which is synchronizing the amount of data that can be processed with the AudioReceiver. More... | |
class | AudioTime |
Tools for calculating timer values. More... | |
class | AudioWAVServer |
A simple Arduino Webserver which streams the audio as WAV data. This class is based on the AudioEncodedServer class. All you need to do is to provide the data with a callback method or from a Stream. More... | |
class | AudioWAVServerEx |
A powerfull WAV Web server which is based on https://github.com/pschatzmann/TinyHttp. It supports multiple concurrent clients. More... | |
class | AudioWriter |
E.g. used by Encoders and Decoders. More... | |
class | BaseBuffer |
Shared functionality of all buffers. More... | |
class | BaseConverter |
Abstract Base class for Converters A converter is processing the data in the indicated array. More... | |
class | BiQuadDF1 |
Biquad DF1 Filter. converted from https://github.com/tttapa/Filters/blob/master/src/BiQuad.h Use float or double (and not a integer type) as type parameter. More... | |
class | BiQuadDF2 |
Biquad DF2 Filter. When dealing with high-order IIR filters, they can get unstable. To prevent this, BiQuadratic filters (second order) are used. Converted from https://github.com/tttapa/Filters/blob/master/src/BiQuad.h Use float or double (and not a integer type) as type parameter. More... | |
class | BitVector |
Space optimized vector which stores the boolean values as bits. More... | |
class | Blackman |
Blackman FFT Window function. More... | |
class | BlackmanHarris |
BlackmanHarris FFT Window function. More... | |
class | BlackmanNuttall |
BlackmanNuttall FFT Window function. More... | |
class | Boost |
Boost AudioEffect. More... | |
class | BufferedArray |
Class which is usfull ot provide incremental data access e.g. for EdgeImpulse which request data with an offset and length starting from 0 up to the buffer length, restarting at 0 again. More... | |
class | BufferedStream |
The Arduino Stream supports operations on single characters. This is usually not the best way to push audio information, but we will support it anyway - by using a buffer. On reads: if the buffer is empty it gets refilled. More... | |
class | BufferedTaskStream |
A FreeRTOS task is filling the buffer from the indicated stream. Only to be used on the ESP32. More... | |
class | BufferedWindow |
Buffered window function, so that we do not need to re-calculate the values. More... | |
class | CachedVolumeControl |
In order to optimize the processing time we cache the last input & factor and recalculate the new factor only if the input has changed. More... | |
class | CallbackVolumeControl |
Provide the volume function as callback method: This is easy to use e.g together with a lamda function! More... | |
class | ChannelConverter |
Increasing or decreasing the number of channels. More... | |
class | ChannelEnhancer |
Increases the channel count. More... | |
class | ChannelFormatConverterStream |
Channel converter which does not use a template. More... | |
class | ChannelFormatConverterStreamT |
Converter for reducing or increasing the number of Channels. More... | |
class | ChannelReducer |
We combine a datastream which consists of multiple channels into less channels. E.g. 2 to 1 The last target channel will contain the combined values of the exceeding source channels. More... | |
class | ChartT |
Displays audio in a Jupyter as chart Just wrapps a stream to provide the chart data. More... | |
class | Client |
class | Codec2Decoder |
Decoder for Codec2. Depends on https://github.com/pschatzmann/arduino-libcodec2. More... | |
class | Codec2Encoder |
Encoder for Codec2 - Depends on https://github.com/pschatzmann/arduino-libcodec2. More... | |
class | CodecNOP |
Dummy no implmentation Codec. This is used so that we can initialize some pointers to decoders and encoders to make sure that they do not point to null. More... | |
struct | ConfigEquilizer3Bands |
Configuration for 3 Band Equilizer: Set channels,bits_per_sample,sample_rate. Set and update gain_low, gain_medium and gain_high to value between 0 and 1.0. More... | |
class | Converter1Channel |
Converter for 1 Channel which applies the indicated Filter. More... | |
class | ConverterAutoCenter |
Makes sure that the avg of the signal is set to 0. More... | |
class | ConverterFillLeftAndRight |
Make sure that both channels contain any data. More... | |
class | ConverterNChannels |
Converter for n Channels which applies the indicated Filter. More... | |
class | ConverterScaler |
Multiplies the values with the indicated factor adds the offset and clips at maxValue. To mute use a factor of 0.0! More... | |
class | ConverterStream |
Both the data of the read or write operations will be converted with the help of the indicated converter. More... | |
class | ConverterSwitchLeftAndRight |
Switches the left and right channel. More... | |
class | ConverterToInternalDACFormat |
special case for internal DAC output, the incomming PCM buffer needs to be converted from signed 16bit to unsigned More... | |
class | CopyDecoder |
Dummy Decoder which just copies the provided data to the output. More... | |
class | CopyEncoder |
Dummy Encoder which just copies the provided data to the output. More... | |
class | CsvStream |
Stream Wrapper which can be used to print the values as readable ASCII to the screen to be analyzed in the Serial Plotter The frames are separated by a new line. The channels in one frame are separated by a ,. More... | |
class | Debouncer |
Helper class to debounce user input from a push button. More... | |
class | Decoder8Bit |
Decoder8Bit - Converts an 8 Bit Stream into 16Bits. More... | |
class | DecoderFloat |
DecoderFloat - Converts Stream of floats into 2 byte integers. More... | |
class | DecoderHelix |
MP3 and AAC Decoder using libhelix: https://github.com/pschatzmann/arduino-libhelix. We dynamically create a MP3 or AAC decoder dependent on the provided audio format. More... | |
class | DefaultSynthesizerChannel |
Default implementation for a Channel. You can provide the Sound Generator as parameter to the effects: e.g. DefaultSynthesizerChannel<AudioEffects<SineWaveGenerator<int16_t>>> *channel = new DefaultSynthesizerChannel<AudioEffects<SineWaveGenerator<int16_t>>>();. More... | |
class | Delay |
Delay/Echo AudioEffect. See https://wiki.analog.com/resources/tools-software/sharc-audio-module/baremetal/delay-effect-tutorial Howver the dry value and wet value were replace by the depth parameter. More... | |
class | DelayEffectBase |
A Base class for delay based digital effects. Provides the basic methods that are shared amongst Flanger, Delay, Chorus and Phaser. More... | |
class | Distortion |
Distortion AudioEffect. More... | |
class | DriverPWMBase |
Base Class for all PWM drivers. More... | |
class | DynamicMemoryStream |
MemoryStream which is written and read using the internal RAM. For each write the data is allocated on the heap. More... | |
class | EffectSuiteBase |
Base Class for Effects. More... | |
class | EncodedAudioPrint |
A more natural Print class to process encoded data (aac, wav, mp3...). Just define the output and the decoder and write the encoded data. More... | |
class | EncodedAudioStream |
A more natural Stream class to process encoded data (aac, wav, mp3...) which also supports the decoding by calling readBytes(). More... | |
class | Encoder8Bit |
Encoder8Bits - Condenses 16 bit PCM data stream to 8 bits data. More... | |
class | EncoderFloat |
EncoderFloats - Encodes 16 bit PCM data stream to floats data. More... | |
class | EnvelopeFilter |
EnvelopeFilter. More... | |
class | Equilizer3Bands |
3 Band Equilizer inspired from https://www.musicdsp.org/en/latest/Filters/236-3-band-equaliser.html More... | |
class | ESP3288AudioOutput |
Stream Adapter for ESP8288-Audio AudioOutput. More... | |
class | ESPNowStream |
ESPNow as Arduino Stream. More... | |
struct | ESPNowStreamConfig |
Configuration for ESP-NOW protocol. More... | |
class | ExponentialVolumeControl |
Simple exponentional volume control using the formula pow(2.0, input) - 1.0;. More... | |
class | Fade |
Fade In and Fade out in order to prevent popping sound when the audio is started or stopped. The fade in/out is performed over the length of the buffer. More... | |
class | FadeConverter |
converter which does a fade out or fade in. More... | |
class | FadeStream |
Stream which can be used to manage fade in and fade out. Before you read or write data you need to call setAudioInfo() to provide the bits_per_sample and channels. More... | |
class | FastSineGenerator |
Sine wave which is based on a fast approximation function. More... | |
class | FaustStream |
Integration into Faust DSP see https://faust.grame.fr/ To generate code from faust, select src and cpp. More... | |
class | FFTDriver |
Abstract Class which defines the basic FFT functionality. More... | |
class | FFTDriverCmsisFFT |
Driver for Cmsis-FFT see https://arm-software.github.io/CMSIS_5/DSP. More... | |
class | FFTDriverESP32FFT |
Driver for ESP32-FFT https://github.com/pschatzmann/esp32-fft More... | |
class | FFTDriverEspressifFFT |
fft Driver for espressif dsp library: https://espressif-docs.readthedocs-hosted.com/projects/esp-dsp/en/latest/esp-dsp-apis.html More... | |
class | FFTDriverKissFFT |
Driver for RealFFT. More... | |
class | FFTDriverRealFFT |
Driver for RealFFT. More... | |
class | File |
Arduino File support using std::fstream. More... | |
class | FilePrint |
Simple layer for Print object to write to a c++ file. More... | |
class | Filter |
Abstract filter interface definition;. More... | |
class | FilterChain |
FilterChain - A Cascade of multiple filters. More... | |
class | FilteredDelay |
Delay effect that filters the repeat delay. More... | |
class | FilteredStream |
Stream to which we can apply Filters for each channel. The filter might change the result size! More... | |
class | FilterEffectBase |
A Base class for filter based effects including methods for simple high, low and band pass filtering. More... | |
class | FIR |
FIR Filter Converted from https://github.com/sebnil/FIR-filter-Arduino-Library/tree/master/src You can use https://www.arc.id.au/FilterDesign.html to design the filter. More... | |
class | FLACDecoder |
Decoder for FLAC. Depends on https://github.com/pschatzmann/arduino-libflac. We support an efficient streaming API and an very memory intensitiv standard interface. So you should prefer the streaming interface where you call setOutputStream() before the begin and copy() in the loop. Validated with http://www.2l.no/hires/. More... | |
class | FLACEncoder |
FLACEncoder. More... | |
class | FlatTop |
FlatTop FFT Window function. More... | |
class | float16 |
Stores float values with 2 bytes. More... | |
class | FormatConverterStream |
Converter which converts bits_per_sample and channels. More... | |
class | FS |
Eumlate FS using C++ or Posix functions. More... | |
class | Fuzz |
Fuzz AudioEffect. More... | |
class | G711_ALAWDecoder |
64 kbit/s g711 ALOW Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G711_ALAWEncoder |
64 kbit/s g711 ALOW Encoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G711_ULAWDecoder |
64 kbit/s g711 ULOW Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G711_ULAWEncoder |
64 kbit/s g711 ULOW Encoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G711Decoder |
64 kbit/s g711 ULOW Decoder based on https://github.com/pschatzmann/arduino-libg7xx Supported decoder parameters: alaw2linear, ulaw2linear More... | |
class | G711Encoder |
64 kbit/s g711 ULOW Encoder based on https://github.com/pschatzmann/arduino-libg7xx Supported encoder parameters: linear2alaw2, linear2ulaw More... | |
class | G721Decoder |
32Kbps G721 Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G721Encoder |
32Kbps G721 Encoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G722Decoder |
Decoder for G.722. Depends on https://github.com/pschatzmann/arduino-libg722. More... | |
class | G722Encoder |
Encoder for G.722 - Depends on https://github.com/pschatzmann/arduino-libg722. Inspired by g722enc.c. More... | |
class | G723_24Decoder |
24Kbps G723 Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G723_24Encoder |
24Kbps G723 Encoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G723_40Decoder |
40Kbps G723 Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G723_40Encoder |
40Kbps G723 Encoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G7xxDecoder |
g723_24, g721, g723_40 Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | G7xxEncoder |
g723_24, g721, g723_40 Encoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
class | GeneratedSoundStream |
Source for reading generated tones. Please note. More... | |
class | GeneratorFixedValue |
Just returns a constant value. More... | |
class | GeneratorFromArray |
We generate the samples from an array which is provided in the constructor. More... | |
class | GeneratorFromStream |
An Adapter Class which lets you use any Stream as a Generator. More... | |
class | GeneratorMixer |
Mixer which combines multiple sound generators into one output. More... | |
class | GSMDecoder |
Decoder for GSM. Depends on https://github.com/pschatzmann/arduino-libgsm. Inspired by gsmdec.c. More... | |
class | GSMEncoder |
Encoder for GSM - Depends on https://github.com/pschatzmann/arduino-libgsm. Inspired by gsmenc.c. More... | |
class | Hamming |
Hamming FFT Window function. More... | |
class | Hann |
Hann FFT Window function. More... | |
class | HardwareSerial |
class | HexDumpStream |
Creates a Hex Dump. More... | |
class | HttpChunkReader |
Http might reply with chunks. So we need to dechunk the data. see https://en.wikipedia.org/wiki/Chunked_transfer_encoding. More... | |
class | HttpHeader |
In a http request and reply we need to process header information. With this API we can define and query the header information. The individual header lines are stored in a vector. This is the common functionality for the HttpRequest and HttpReplyHeader subclasses. More... | |
struct | HttpHeaderLine |
A individual key - value header line. More... | |
class | HttpLineReader |
We read a single line. A terminating 0 is added to the string to make it compliant for c string functions. More... | |
class | HttpReplyHeader |
Reading and Writing of Http Replys. More... | |
class | HttpRequest |
Simple API to process get, put, post, del http requests I tried to use Arduino HttpClient, but I did not manage to extract the mime type from streaming get requests. More... | |
class | HttpRequestHeader |
Reading and writing of Http Requests. More... | |
class | I2SConfig |
configuration for all common i2s settings More... | |
class | I2SDriverESP32 |
Basic I2S API - for the ESP32. If we receive 1 channel, we expand the result to 2 channels. More... | |
class | I2SDriverESP8266 |
Basic I2S API - for the ESP8266 Only 16 bits are supported ! More... | |
class | I2SDriverNanoBLE |
Basic I2S API - for the Arduino Nano BLE Sense. More... | |
class | I2SDriverRP2040 |
Basic I2S API - for the ... More... | |
class | I2SDriverSAMD |
Basic I2S API - for the SAMD. More... | |
class | I2SDriverSTM32 |
Basic I2S API - for the STM32 Depends on https://github.com/pschatzmann/stm32f411-i2s We just add a write and read buffer and pass some parameters to the STM32 API! More... | |
class | I2SStream |
We support the Stream interface for the I2S access. In addition we allow a separate mute pin which might also be used to drive a LED... More... | |
class | ICYStream |
Icecast/Shoutcast Audio Stream which splits the data into metadata and audio data. The Audio data is provided via the regular stream functions. The metadata is handled with the help of the MetaDataICY state machine and provided via a callback method. More... | |
class | ICYStreamBuffered |
ICYStream implementation for the ESP32 based on a FreeRTOS task This is a Icecast/Shoutcast Audio Stream which splits the data into metadata and audio data. The Audio data is provided via the regular stream functions. The metadata is handled with the help of the MetaDataICY state machine and provided via a callback method. More... | |
class | ICYUrlSetup |
Resolve icy-metaint from HttpRequest and execute metadata callbacks. More... | |
struct | ID3v1 |
struct | ID3v1Enhanced |
struct | ID3v2 |
struct | ID3v2Frame |
struct | ID3v2FrameString |
class | IIR |
IIRFilter Converted from https://github.com/tttapa/Filters/blob/master/src/IIRFilter.h. More... | |
class | ILBCDecoder |
Decoder for iLBC. Depends on https://github.com/pschatzmann/libilbc. More... | |
class | ILBCEncoder |
Encoder for iLBC - Depends on https://github.com/pschatzmann/libopenilbc. More... | |
class | InputMerge |
Merges multiple input channels. The input must be mono! So if you provide 2 mono channels you get a stereo signal as result with the left channel from channel 0 and the right from channel 1. More... | |
class | InputMixer |
MixerStream is mixing the input from Multiple Input Streams. All streams must have the same audo format (sample rate, channels, bits per sample) More... | |
class | int24_t |
24bit integer which is used for I2S sound processing. The values are represented as int32_t, but only 3 bytes are used. If you assign values which are too big, they are clipped. More... | |
class | JupyterAudioT |
Output to Jupyter. We write the data just to a file from where we can load the data again for different representations. More... | |
class | LastSampleFader |
If we end audio and the last sample is not close to 0 we can hear a popping noise. This functionality brings the last value slowly to 0. Typless implementation. More... | |
class | LastSampleFaderT |
If we end audio and the last sample is not close to 0 we can hear a popping noise. This functionality brings the last value slowly to 0. More... | |
class | LC3Decoder |
Decoder for LC3. Depends on https://github.com/pschatzmann/arduino-liblc3. More... | |
class | LC3Encoder |
Encoder for LC3 - Depends on https://github.com/pschatzmann/arduino-liblc3. More... | |
class | LinearVolumeControl |
The simplest possible implementation of a VolumeControl: The input = output which describes a linear curve. You would use this implementation if you physically connect an audio pot! More... | |
class | List |
Double linked list. More... | |
class | Lock |
A simple RIA locking class for the ESP32 using _lock_t. More... | |
class | LockGuard |
RAII implementaion using a Mutex: Only a few microcontrollers provide lock guards, so I decided to roll my own solution where we can just use a dummy Mutex implementation that does nothing for the cases where this is not needed. More... | |
class | LogarithmicVolumeControl |
Parametric Logarithmic volume control. Using the formula pow(b,input) * a - a, where b is b = pow(((1/ym)-1), 2) and a is a = 1.0 / (b - 1.0). The parameter ym is determining the steepness. See https://electronics.stackexchange.com/questions/304692/formula-for-logarithmic-audio-taper-pot. More... | |
class | Maximilian |
AudioTools integration with Maximilian. More... | |
class | MeasuringStream |
Class which measures the truput. More... | |
class | MemoryManager |
MemoryManager which activates the use of external SPIRAM memory. When external memory is in use, the allocation strategy is to initially try to satisfy smaller allocation requests with internal memory and larger requests with external memory. This sets the limit between the two, as well as generally enabling allocation in external memory. More... | |
class | MemoryPrint |
Prints to a preallocated memory. More... | |
class | MemoryStream |
A simple Stream implementation which is backed by allocated memory. More... | |
class | MetaDataFilter |
Class which filters out ID3v1 and ID3v2 Metadata and provides only the audio data to the decoder. More... | |
class | MetaDataICY |
Icecast/Shoutcast Metadata Handling. Metadata class which splits the data into audio and metadata. The result is provided via callback methods. see https://www.codeproject.com/Articles/11308/SHOUTcast-Stream-Ripper. More... | |
class | MetaDataID3 |
Simple ID3 Meta Data Parser which supports ID3 V1 and V2 and implements the Stream interface. You just need to set the callback(s) to receive the result and copy the audio data to this stream. More... | |
class | MetaDataID3Base |
ID3 Meta Data Common Functionality. More... | |
class | MetaDataID3V1 |
Simple ID3 Meta Data API which supports ID3 V1. More... | |
class | MetaDataID3V2 |
Simple ID3 Meta Data API which supports ID3 V2: We only support the "TALB", "TOPE", "TIT2", "TCON" tags. More... | |
class | MetaDataPrint |
ID3 and Icecast/Shoutcast metadata output support. Just write the audio data to an object of this class and receive the metadata via the callback. More... | |
class | ModulationBaseClass |
Class provides a wave table that can be populated with a number of preallocated waveforms. These can be used to generate audio in themselves or to modulate The parameters of another effect. Class initialised with sample rate. More... | |
struct | MozziConfig |
Mozzi Configuration for input or output stream. More... | |
class | MozziGenerator |
Support for https://sensorium.github.io/Mozzi/ Define your updateControl() method. Define your updateAudio() method. Start by calling begin(control_rate) do not call audioHook(); in the loop ! More... | |
class | MozziStream |
We use the output functionality of Mozzi to output audio data. We expect the data as array of int16_t with one or two channels. Though we support the setting of a sample rate, we recommend to use the default sample rate from Mozzi which is available with the AUDIO_RATE define. More... | |
class | MP3DecoderHelix |
MP3 Decoder using libhelix: https://github.com/pschatzmann/arduino-libhelix This is basically just a simple wrapper to provide AudioBaseInfo and AudioBaseInfoDependent. More... | |
class | MP3DecoderMAD |
MP3 Decoder using https://github.com/pschatzmann/arduino-libmad. More... | |
class | MP3DecoderMini |
MP3 Decoder using https://github.com/pschatzmann/minimp3. This decoder does not provide any good results and it is not suited to decode any audio above 32000 on an ESP32. So the sample rate is limited by the MINIMP3_MAX_SAMPLE_RATE variable. More... | |
class | MP3EncoderLAME |
Encodes PCM data to the MP3 format and writes the result to a stream This is basically just a wrapper using https://github.com/pschatzmann/arduino-liblame. More... | |
class | MultiConverter |
Combines multiple converters. More... | |
class | MultiOutput |
Replicates the output to multiple destinations. More... | |
class | MusicalNotes |
Determination of the frequency of a music note. More... | |
class | Mutex |
Mutex implemntation using FreeRTOS. More... | |
class | MutexBase |
Empty Mutex implementation which does nothing. More... | |
struct | Nano_BLE_freq_info |
Mapping Frequency constants to available frequencies. More... | |
struct | Nano_BLE_ratio_info |
Mapping from Ratio Constants to frequency ratios. More... | |
class | NBuffer |
A lock free N buffer. If count=2 we create a DoubleBuffer, if count=3 a TripleBuffer etc. More... | |
class | NoFilter |
No change to the input. More... | |
class | NoiseGenerator |
Generates a random noise sound with the help of rand() function. More... | |
class | NOPConverter |
Dummy converter which does nothing. More... | |
class | NullStream |
The Arduino Stream which provides silence and simulates a null device when used as audio target. More... | |
class | NumberConverter |
Converts from a source to a target number with a different type. More... | |
class | NumberFormatConverterStream |
Converter which converts between bits_per_sample and 16 bits. More... | |
class | NumberFormatConverterStreamT |
Converter which converts from source bits_per_sample to target bits_per_sample. More... | |
class | NumberReader |
Reads n numbers from an Arduino Stream. More... | |
class | Nuttall |
Nuttall FFT Window function. More... | |
class | OggContainerDecoder |
OggContainerDecoder - Ogg Container. Decodes a packet from an Ogg container. The Ogg begin segment contains the AudioBaseInfo structure. You can subclass and overwrite the beginOfSegment() method to implement your own headers. More... | |
class | OggContainerEncoder |
OggContainerEncoder - Ogg Container. Encodes a packet for an Ogg container. The Ogg begin segment contains the AudioBaseInfo structure. You can subclass ond overwrite the writeHeader() method to implement your own header logic. More... | |
class | OpusAudioDecoder |
OpusDecoder. Depends on https://github.com/pschatzmann/arduino-libopus.git. More... | |
class | OpusAudioEncoder |
OpusDecoder - Actually this class does no encoding or decoding at all. It just passes on the data. Dependent on https://github.com/pschatzmann/arduino-libopus.git. More... | |
struct | OpusEncoderSettings |
Setting for Opus Encoder where the following values are valid: -1 indicates that the default value should be used and that this codec is not setting the value. More... | |
class | OpusOggDecoder |
Opus Decoder which uses the Ogg Container. See https://datatracker.ietf.org/doc/html/rfc7845. The audio data is transmitted in frames and the header information contains the sampler rate, channels and other critical info. More... | |
class | OpusOggEncoder |
Opus Encoder which uses the Ogg Container: see https://datatracker.ietf.org/doc/html/rfc7845. More... | |
struct | OpusSettings |
Setting for Opus Decoder. More... | |
class | OutputMixer |
Mixing of multiple outputs to one final output. More... | |
class | Parameter |
A constant value. More... | |
struct | PicoChannelOut |
Rasperry Pico Channel to pin assignments. More... | |
struct | PinInfoESP32 |
Information for a PIN. More... | |
class | PitchShift |
Shifts the pitch by the indicated step size: e.g. 2 doubles the pitch. More... | |
struct | PitchShiftInfo |
Configuration for PitchShiftStream: set the pitch_shift to define the shift. More... | |
class | PitchShiftStream |
Pitch Shift: Shifts the frequency up or down w/o impacting the length! We reduce the channels to 1 to calculate the pitch shift and provides the pitch shifted result in the correct number of channels. The pitch shifting is done with the help of a buffer that can have potentially multiple implementations. More... | |
class | PoppingSoundRemover |
Big value gaps (at the beginning and the end of a recording) can lead to some popping sounds. We will try to set the values to 0 until the first transition thru 0 of the audio curve. More... | |
class | PortAudioConfig |
PortAudio information. More... | |
class | PortAudioStream |
Arduino Audio Stream using PortAudio. More... | |
class | |
class | PWMAudioStream |
Common functionality for PWM output. Please use the PWMAudioStream typedef instead which references the implementation. More... | |
struct | PWMConfig |
Configuration data for PWM audio output. More... | |
class | PWMDriverAVR |
Experimental: Audio output to PWM pins for the AVR. The AVR supports only up to 2 channels. More... | |
class | PWMDriverESP32 |
Audio output to PWM pins for the ESP32. The ESP32 supports up to 16 channels. More... | |
class | PWMDriverMBED |
Audio output to PWM pins for MBED based Arduino implementations. More... | |
class | PWMDriverRP2040 |
Audio output for the Rasperry Pico to PWM pins. The Raspberry Pi Pico has 8 PWM blocks/slices(1-8) and each PWM block provides up to two PWM outputs(A-B). More... | |
class | PWMDriverSTM32 |
Audio output to PWM pins for STM32. We use one timer to generate the sample rate and one timer for the PWM signal. More... | |
class | Queue |
FIFO Queue which is based on a List. More... | |
class | QueueFreeRTOS |
FIFO Queue which is based on a List. More... | |
class | QueueLockFree |
Lock Free Queue. More... | |
class | QueueStream |
AudioOutput class which stores the data in a temporary queue buffer. The queue can be consumed e.g. by a callback function by calling readBytes();. More... | |
class | Rectange |
Rectange FFT Window function. More... | |
struct | ResampleConfig |
Optional Configuration object. The critical information is the channels and the step_size. All other information is not used. More... | |
class | ResampleStream |
Dynamic Resampling. We can use a variable factor to speed up or slow down the playback. More... | |
class | RingBuffer |
Implements a typed Ringbuffer. More... | |
class | RingBufferStream |
A Stream backed by a Ringbuffer. We can write to the end and read from the beginning of the stream. More... | |
class | RTPPCMAudioInfo |
PCMInfo subclass which provides the audio information from the AudioBaseInfo parameter. More... | |
class | RTPStreamPCMInfo |
PCMInfo subclass which provides the audio information from the related AudioStream. More... | |
class | RTSPSourceAudioStream |
Simple Facade which can turn AudioStream into a IAudioSource. This way we can e.g. use an I2SStream as source to stream data. More... | |
class | RTSPSourceStream |
Simple Facade which can turn any Stream into a IAudioSource. This way we can e.g. use an I2SStream as source to stream data. More... | |
class | SBCDecoder |
Decoder for SBC. Depends on https://github.com/pschatzmann/arduino-libsbc. Inspired by sbcdec.c. More... | |
class | SBCEncoder |
Encoder for SBC - Depends on https://github.com/pschatzmann/arduino-libsbc. Inspired by sbcenc.c. More... | |
class | ScaledParameter |
Scales a dynamic parameter to the indicated range. More... | |
class | SDDirect |
We access the files directy with an index. The index is determined by a recurseve tree walk thru the directory. Unfortunatly the SDTFAT library has it's own API which is incompatible with the SDT API. More... | |
class | SDIndex |
We store all the relevant file names in an sequential index file. Form there we can access them via an index. More... | |
class | SilenceGenerator |
Provides a fixed value (e.g. 0) as sound data. This can be used e.g. to test the output functionality which should optimally just output silence and no artifacts. More... | |
class | SilenceRemovalConverter |
Removes any silence from the buffer that is longer then n samples with a amplitude below the indicated threshhold. If you process multiple channels you need to multiply the channels with the number of samples to indicate n. More... | |
class | SimpleChorus |
Simple Chorus effect with a single delay voice and mono output Chorus is effective between 15 and 20 miliseconds delay of original audio. Requires the sample rate when initialising. More... | |
struct | SimpleContainerConfig |
struct | SimpleContainerDataHeader |
class | SimpleContainerDecoder |
Decodes the provided data from the DAT and CFG segments. More... | |
class | SimpleContainerEncoder |
Wraps the encoded data into CFG and DAT segments so that we can recover the audio configuration and orignial segments if this is relevant. More... | |
class | SimpleDelay |
Simple Delay effect consiting of a single tap delay with Effect Gain and feed back controls Constructor requires internal delay in samples. More... | |
class | SimpleFlanger |
Simple Flanger Effect Consistig of a single voice flanger The flanger has an effective range between 0 and 15 miliseconds in this case dleay buffer should be set to sampleRate*3/200 Constructor requires internal delay in samples. More... | |
class | SimpleLPF |
SimpleLPF. More... | |
class | SimulatedAudioPot |
Simple simulated audio pot volume control inspired by https://eepower.com/resistor-guide/resistor-types/potentiometer-taper/# We split up the input/output curve into 2 linear pieces with a slow and a fast raising part. The slow raising part goes from (0,0) to (x,y). The fast raising part goes from (x,y) to (1,1). More... | |
class | SineFromTable |
A sine generator based on a table. The table is created based using degress where one full wave is 360 degrees. More... | |
class | SineWaveGenerator |
Generates a Sound with the help of sin() function. If you plan to change the amplitude or frequency (incrementally), I suggest to use SineFromTable instead. More... | |
class | SingleBuffer |
A simple Buffer implementation which just uses a (dynamically sized) array. More... | |
class | SmoothTransition |
Changes the samples at the beginning or at the end to slowly ramp up the volume. More... | |
class | SOSFilter |
Second Order Filter: Instead of manually cascading BiQuad filters, you can use a Second Order Sections filter (SOS). converted from https://github.com/tttapa/Filters/blob/master/src/SOSFilter.h Use float or double (and not a integer type) as type parameter. More... | |
class | SoundGenerator |
Base class to define the abstract interface for the sound generating classes. More... | |
class | SoundGeneratorModulation |
SoundGenerator using the ModulationBaseClass to generate the samples. More... | |
struct | SPDIFConfig |
SPDIF configuration. More... | |
class | SPDIFStream |
Output as 16 bit stereo SPDIF on the I2S data output pin. More... | |
class | SquareWaveGenerator |
Generates a square wave sound. More... | |
class | Stack |
LIFO Stack which is based on a List. More... | |
class | StdMutex |
Mutex implemntation based on std::mutex. More... | |
class | STKChorus |
Chorus Effect. More... | |
class | STKChowningReverb |
John Chowning's reverberator class. More... | |
class | STKEcho |
Echo Effect. More... | |
class | STKEffect |
Use any effect from the STK framework: e.g. Chorus, Echo, FreeVerb, JCRev, PitShift... https://github.com/pschatzmann/Arduino-STK. More... | |
class | STKFreeVerb |
Jezar at Dreampoint's FreeVerb, implemented in STK. More... | |
class | STKGenerator |
The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. More... | |
class | STKLentPitShift |
Pitch shifter effect class based on the Lent algorithm. More... | |
class | STKNReverb |
CCRMA's NRev reverberator class. More... | |
class | STKPerryReverb |
Perry's simple reverberator class. More... | |
class | STKPitShift |
Pitch shifter effect class based on the Lent algorithm. More... | |
class | STKStream |
STK Stream for Instrument or Voicer. More... | |
class | Str |
A simple wrapper to provide string functions on char*. If the underlying char* is a const we do not allow any updates; The ownership of the chr* must be managed externally! More... | |
class | Stream |
class | StreamCopy |
We provide the typeless StreamCopy as a subclass of StreamCopyT. More... | |
class | StreamCopyT |
Typed Stream Copy which supports the conversion from channel to 2 channels. We make sure that we allways copy full samples. More... | |
class | StreamingDecoder |
A Streaming Decoder where we provide both the input and output as streams. More... | |
class | StrExt |
Str which keeps the data on the heap. We grow the allocated memory only if the copy source is not fitting. More... | |
class | SynchronizedBuffer |
Wrapper class that can turn any Buffer into a thread save implementation. More... | |
class | SynchronizedBufferRTOS |
Buffer implementation which is using a FreeRTOS StreamBuffer. More... | |
class | SynchronizedNBuffer |
NBuffer which uses some RTOS queues to manage the available and filled buffers. More... | |
class | Synthesizer |
A simple Synthesizer which can generate sound having multiple keys pressed. The main purpose of this class is managing the synthezizer channels. More... | |
struct | SynthesizerKey |
Arduino GPIO pin to note assossiation. More... | |
class | TestGenerator |
Generates a test signal which is easy to check because the values are incremented or decremented by 1. More... | |
class | TfLiteAbstractRecognizeCommands |
Base class for implementing different primitive decoding models on top of the instantaneous results from running an audio recognition model on a single window of samples. More... | |
class | TfLiteAudioErrorReporter |
Error Reporter using the Audio Tools Logger. More... | |
class | TfLiteAudioStream |
TfLiteAudioStream which uses Tensorflow Light to analyze the data. If it is used as a generator (where we read audio data) More... | |
class | TfLiteAudioStreamBase |
Astract TfLiteAudioStream to provide access to TfLiteAudioStream for Reader and Writers. More... | |
struct | TfLiteConfig |
Configuration settings for TfLiteAudioStream. More... | |
class | TfLiteMicroSpeachWriter |
TfLiteMicroSpeachWriter for Audio Data. More... | |
class | TfLiteMicroSpeechRecognizeCommands |
This class is designed to apply a very primitive decoding model on top of the instantaneous results from running an audio recognition model on a single window of samples. It applies smoothing over time so that noisy individual label scores are averaged, increasing the confidence that apparent matches are real. To use it, you should create a class object with the configuration you want, and then feed results from running a TensorFlow model into the processing method. The timestamp for each subsequent call should be increasing from the previous, since the class is designed to process a stream of data over time. More... | |
class | TfLiteQuantizer |
Quantizer that helps to quantize and dequantize between float and int8. More... | |
class | TfLiteReader |
Input class which provides the next value if the TfLiteAudioStream is treated as an audio sourcce. More... | |
class | TfLiteSineReader |
Generate a sine output from a model that was trained on the sine method. (=hello_world) More... | |
class | TfLiteWriter |
Output class which interprets audio data if TfLiteAudioStream is treated as audio sink. More... | |
class | Throttle |
Throttle the sending of the audio data to limit it to the indicated sample rate. More... | |
struct | ThrottleConfig |
Configure Throttle setting. More... | |
class | TimerAlarmRepeating |
Common Interface definition for TimerAlarmRepeating. More... | |
class | TimerAlarmRepeatingDriverAVR |
Repeating Timer functions for repeated execution: Plaease use the typedef TimerAlarmRepeating. More... | |
class | TimerAlarmRepeatingDriverBase |
class | TimerAlarmRepeatingDriverESP32 |
Repeating Timer functions for simple scheduling of repeated execution. The basic logic is taken from https://www.toptal.com/embedded/esp32-audio-sampling. Plaease use the typedef TimerAlarmRepeating. More... | |
class | TimerAlarmRepeatingDriverESP8266 |
Repeating Timer functions for repeated execution: Plaease use the typedef TimerAlarmRepeating. More... | |
class | TimerAlarmRepeatingDriverMBED |
Repeating Timer functions for repeated execution: Plaease use the typedef TimerAlarmRepeating. More... | |
class | TimerAlarmRepeatingDriverRP2040 |
Repeating Timer functions for repeated execution: Plaease use the typedef TimerAlarmRepeating. More... | |
class | TimerAlarmRepeatingDriverSTM32 |
STM32 Repeating Timer functions for repeated execution: Plaease use the typedef TimerAlarmRepeating. More... | |
class | TimerCallback |
Internal class to manage the different timer callbacks for the 4 hardware timers. More... | |
class | TimerCallbackAudioStream |
Callback driven Audio Source (rx_tx_mode==RX_MODE) or Audio Sink (rx_tx_mode==TX_MODE). This class allows to to integrate external libraries in order to consume or generate a data stream which is based on a timer. More... | |
struct | TimerCallbackAudioStreamInfo |
TimerCallbackAudioStream Configuration. More... | |
class | Tremolo |
Tremolo AudioEffect. More... | |
class | Triangle |
Triangle FFT Window function. More... | |
class | UDPStream |
class | Url |
URL parser which breaks a full url string up into its individual parts. More... | |
class | URLStream |
Represents the content of a URL as Stream. We use the WiFi.h API. More... | |
class | URLStreamBuffered |
URLStream implementation for the ESP32 based on a separate FreeRTOS task. More... | |
class | UserCallback |
Internal class to manage User callbacks. An optinal parameter can be passed to the callback method. More... | |
class | VariableSpeedRingBuffer |
Optimized Buffer implementation for Pitch Shift. We try to interpolate the samples and restore the phase when the read pointer and write pointer overtake each other. More... | |
class | VariableSpeedRingBuffer180 |
Varialbe speed ring buffer where we read with 0 and 180 degree and blend the result to prevent overrun artifacts. See https://github.com/YetAnotherElectronicsChannel/STM32_DSP_PitchShift. More... | |
class | VariableSpeedRingBufferSimple |
Very Simple Buffer implementation for Pitch Shift. We write in constant speed, but reading can be done in a variable speed. We will hear some noise when the buffer read and write pointers overrun each other. More... | |
class | Vector |
Vector implementation which provides the most important methods as defined by std::vector. This class it is quite handy to have and most of the times quite better then dealing with raw c arrays. More... | |
class | VolumeControl |
Abstract class for handling of the linear input volume to determine the multiplication factor which should be applied to the audio signal. More... | |
class | VolumePrint |
A simple class to determine the volume. More... | |
class | VolumeStream |
Adjust the volume of the related input or output: To work properly the class needs to know the bits per sample and number of channels! AudioChanges are forwareded to the related Print or Stream class. More... | |
struct | VolumeStreamConfig |
Config for VolumeStream. More... | |
class | VorbisDecoder |
Vorbis Streaming Decoder using https://github.com/pschatzmann/arduino-libvorbis-idec https://github.com/pschatzmann/arduino-libopus.git. More... | |
class | VS1053Config |
Configuration for VS1053Stream. More... | |
class | VS1053Stream |
VS1053 Output Interface which processes PCM data by default. If you want to write encoded data set is_encoded_data = true in the configuration;. More... | |
struct | WAVAudioInfo |
Sound information which is available in the WAV header. More... | |
class | WAVDecoder |
WAVDecoder - We parse the header data on the first record and send the sound data to the stream which was indicated in the constructor. Only WAV files with WAV_FORMAT_PCM are supported! More... | |
class | WAVEncoder |
A simple WAV file encoder. More... | |
class | WAVHeader |
Parser for Wav header data for details see https://de.wikipedia.org/wiki/RIFF_WAVE. More... | |
class | Welch |
Welch FFT Window function. More... | |
class | WindowFunction |
FFT Window Function. More... | |
class | WM8960Config |
Configuration for WM8960. More... | |
class | WM8960Stream |
Stream for reading and writing audio data using the WM8960 Codec Chip You need to install https://github.com/pschatzmann/arduino-wm8960. More... | |
Typedefs | |
using | AnalogDriver = AnalogDriverArduino |
AnalogAudioStream. | |
using | AudioEffectStream = AudioEffectStreamT< effect_t > |
EffectsStream using effect_t (=int16_t) samples. More... | |
typedef File | AudioFile |
typedef sdfat::SdFs | AudioFs |
typedef void(* | AudioServerDataCallback) (Print *out) |
Calback which writes the sound data to the stream. | |
template<typename T > | |
using | CallbackBufferedStream = QueueStream< T > |
using | Chart = ChartT< int16_t > |
typedef int16_t | effect_t |
typedef float | effectsuite_t |
using | I2SDriver = I2SDriverESP32 |
using | JupyterAudio = JupyterAudioT< int16_t > |
using | Mutex = MutexBase |
typedef void(* | my_repeating_timer_callback_t) (void *obj) |
typedef PinInfoESP32 | PinInfo |
using | Pins = Vector< int > |
Pins. | |
typedef bool(* | PWMCallbackType) (uint8_t channels, int16_t *data) |
using | PWMDriver = PWMDriverAVR |
typedef void(* | repeating_timer_callback_t) (void *obj) |
typedef sdfat::SdSpiConfig | SdSpiConfig |
typedef void(* | simple_callback) (void) |
using | TimerAlarmRepeatingDriver = TimerAlarmRepeatingDriverAVR |
use TimerAlarmRepeating! | |
Enumerations | |
enum | A2DPNoData { A2DPSilence , A2DPWhoosh } |
enum | A2DPStartLogic { StartWhenBufferFull , StartOnConnect } |
enum | AudioType : uint8_t { PCM , MP3 , AAC , WAV } |
enum | FileMode { FILE_READ ='r' , FILE_WRITE ='w' , FILE_APPEND ='a' } |
enum | FillLeftAndRightStatus { Auto , LeftIsEmpty , RightIsEmpty } |
enum | G7xxCODEC_e { g723_24 , g721 , g723_40 , others } |
Supported codecs by G7xxDecoder and G7xxEncoder. More... | |
enum | I2SFormat { I2S_STD_FORMAT , I2S_LSB_FORMAT , I2S_MSB_FORMAT , I2S_PHILIPS_FORMAT , I2S_RIGHT_JUSTIFIED_FORMAT , I2S_LEFT_JUSTIFIED_FORMAT , I2S_PCM_LONG , I2S_PCM_SHORT } |
I2S Formats. | |
enum | I2SSignalType { Digital , Analog , PDM } |
I2S Signal Types: Digital, Analog, PDM. | |
enum | ID3TypeSelection { SELECT_ID3V1 =0b001 , SELECT_ID3V2 =0b010 , SELECT_ID3 =0b011 , SELECT_ICY =0b100 , SELECT_ANY =0b111 } |
Enum to filter by type of metadata. | |
enum | MemoryType { RAM , PS_RAM , FLASH_RAM } |
enum | MetaDataType { Title , Artist , Album , Genre , Name , Description } |
Type of meta info. | |
enum | ParseStatus { TagNotFound , PartialTagAtTail , TagFoundPartial , TagFoundComplete , TagProcessed } |
current status of the parsing | |
enum | RecordType : uint8_t { Undefined , Begin , Send , Receive , End } |
enum | RxTxMode { UNDEFINED_MODE =0 , TX_MODE =1 , RX_MODE =2 , RXTX_MODE =3 } |
Audio Source (TX_MODE) or Audio Sink (RX_MODE) | |
enum | SeekMode { SeekSet = 0 , SeekCur = 1 , SeekEnd = 2 } |
enum | TimerFunction { DirectTimerCallback , TimerCallbackInThread , SimpleThreadLoop } |
enum | TimeUnit { MS , US } |
Time Units. | |
enum | TransmitRole : uint8_t { Sender , Receiver } |
enum | VS1053Mode { ENCODED_MODE , PCM_MODE , MIDI_MODE } |
Functions | |
struct | __attribute__ ((packed)) OpusOggHeader |
Opus header. More... | |
void | a2dp_stream_sink_sound_data (const uint8_t *data, uint32_t len) |
int32_t | a2dp_stream_source_sound_data (Frame *data, int32_t len) |
static uint16_t | convert8DAC (int64_t value, int value_bits_per_sample) |
void | defaultPWMAudioOutputCallback () |
separate method that can be defined as friend so that we can access protected information More... | |
void | delay (uint64_t ms) |
Waits for the indicated milliseconds. | |
int | getCodec2Mode (int bits_per_second) |
Convert bits per sample to Codec2 mode. | |
INLINE_VAR NBuffer< uint8_t > | i2s_buffer (i2s_buffer_size, 5) |
void | I2S_IRQHandler (void) |
ISR (TIMER1_COMPA_vect) | |
timer callback: write the next frame to the pins | |
long | map (long x, long in_min, long in_max, long out_min, long out_max) |
Maps input to output values. | |
uint64_t | millis () |
Returns the milliseconds since the start. | |
float | operator* (float one, float16 two) |
float | operator* (float16 one, float two) |
float | operator* (float16 one, float16 two) |
float | operator+ (float one, float16 two) |
float | operator+ (float16 one, float two) |
float | operator+ (float16 one, float16 two) |
float | operator- (float one, float16 two) |
float | operator- (float16 one, float two) |
float | operator- (float16 one, float16 two) |
float | operator/ (float one, float16 two) |
float | operator/ (float16 one, float two) |
float | operator/ (float16 one, float16 two) |
template<typename T > | |
T | readSample (Stream *p_stream) |
guaranteed to return the requested data | |
static IRAM_ATTR void | timerCallback0 () |
static IRAM_ATTR void | timerCallback1 () |
static IRAM_ATTR void | timerCallback2 () |
static IRAM_ATTR void | timerCallback3 () |
INLINE_VAR const char * | toStr (MetaDataType t) |
Converts the MetaDataType to a string. | |
static IRAM_ATTR void | userCallback0 () |
static IRAM_ATTR void | userCallback1 () |
static IRAM_ATTR void | userCallback2 () |
static IRAM_ATTR void | userCallback3 () |
void | waitFor (bool &flag) |
wait for flag to be active | |
void | waitFor (HardwareSerial &out) |
wait for the Output to be ready | |
Variables | |
static RingBuffer< uint8_t > * | a2dp_buffer = nullptr |
static A2DPStream * | A2DPStream_self =nullptr |
INLINE_VAR const char * | ACCEPT = "Accept" |
INLINE_VAR const char * | ACCEPT_ALL = "*/*" |
INLINE_VAR const char * | ACCEPT_ENCODING = "Accept-Encoding" |
static PWMDriverAVR * | accessAudioPWM = nullptr |
static PWMDriverESP32 * | accessAudioPWM = nullptr |
AudioBaseInfoDependent * | audioChangeAACHelix =nullptr |
AudioBaseInfoDependent * | audioChangeFDK = nullptr |
AudioBaseInfoDependent * | audioChangeMAD |
AudioBaseInfoDependent * | audioChangeMP3Helix =nullptr |
MusicalNotes | AudioFFTNotes |
static const int16_t * | bmc_tab = (int16_t *)bmc_tab_uint |
static const uint16_t | bmc_tab_uint [256] |
INLINE_VAR const char * | CHUNKED = "chunked" |
INLINE_VAR const char * | CON_CLOSE = "close" |
INLINE_VAR const char * | CON_KEEP_ALIVE = "keep-alive" |
INLINE_VAR const char * | CONNECTION = "Connection" |
INLINE_VAR const char * | CONTENT_LENGTH = "Content-Length" |
INLINE_VAR const char * | CONTENT_TYPE = "Content-Type" |
INLINE_VAR const char * | DEFAULT_AGENT = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" |
audio_tools::PWMConfig | default_config |
tflite::ErrorReporter * | error_reporter = &my_error_reporter |
ESPNowStream * | ESPNowStreamSelf = nullptr |
INLINE_VAR const Nano_BLE_freq_info | freq_table [] |
INLINE_VAR const char * | genres [] = { "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal", "New Age", "Oldies", "Other", "Pop", "R&B", "Rap", "Reggae", "Rock", "Techno", "Industrial", "Alternative", "Ska", "Death Metal", "Pranks", "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk", "Fusion", "Trance", "Classical", "Instrumental", "Acid", "House", "Game", "Sound Clip", "Gospel", "Noise", "Alternative Rock", "Bass", "Soul", "Punk", "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", "Ethnic", "Gothic", "Darkwave", "Techno-Insdustiral", "Electronic", "Pop-Folk", "Eurodance", "Dream", "Southern Rock", "Comedy", "Cult", "Gangsta", "Top 40", "Christian Rap", "Pop/Funk", "Jungle", "Native US", "Cabaret", "New Wave", "Psychadelic", "Rave", "Showtunes", "Trailer", "Lo-Fi", "Tribal", "Acid Punk", "Acid Jazz", "Polka", "Retro", "Musical", "Rock & Roll", "Hard Rock", "Folk", "Folk-Rock", "National Folk", "Swing", "Fast Fusion", "Bebob", "Latin", "Revival", "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", "Big Band", "Chorus", "Easy Listening", "Acoustic","Humour", "Speech", "Chanson", "Opera", "Chamber Music", "Sonata", "Symphony", "Booty Bass", "Primus", "Porn Groove", "Satire", "Slow Jam", "Club", "Tango", "Samba", "Folklore", "Ballad", "Power Ballad", "Rhytmic Soul", "Freestyle", "Duet", "Punk Rock", "Drum Solo", "Acapella", "Euro-House", "Dance Hall", "Goa", "Drum & Bass", "Club-House", "Hardcore", "Terror", "Indie", "BritPop", "Negerpunk", "Polsk Punk", "Beat", "Christian Gangsta", "Heavy Metal", "Black Metal", "Crossover", "Contemporary C", "Christian Rock", "Merengue", "Salsa", "Thrash Metal", "Anime", "JPop", "SynthPop" } |
INLINE_VAR const char * | HOST_C = "Host" |
::I2S | I2S |
INLINE_VAR const int | i2s_buffer_size = 1024 |
INLINE_VAR const char * | i2s_formats [] = {"I2S_STD_FORMAT","I2S_LSB_FORMAT","I2S_MSB_FORMAT","I2S_PHILIPS_FORMAT","I2S_RIGHT_JUSTIFIED_FORMAT","I2S_LEFT_JUSTIFIED_FORMAT","I2S_PCM_LONG","I2S_PCM_SHORT"} |
INLINE_VAR const char * | id3_v2_tags [] = {"TALB", "TOPE", "TPE1", "TIT2", "TCON"} |
INLINE_VAR const int | ID3FrameSize = 11 |
INLINE_VAR const char * | IDENTITY = "identity" |
static effectsuite_t ** | interpolationTable = nullptr |
Table of interpolation values as a 2D array indexed by interpolationTable[pointIndex][alphaIndex]. | |
static bool | is_a2dp_active = false |
INLINE_VAR const char * | LOCATION = "Location" |
INLINE_VAR const char * | MetaDataTypeStr [] = {"Title", "Artist", "Album", "Genre","Name", "Description"} |
INLINE_VAR const char * | methods [] = {"?","GET","HEAD","POST","PUT","DELETE","TRACE","OPTIONS","CONNECT","PATCH",nullptr} |
static const char * | mime_pcm = "audio/pcm" |
Mime type for PCM. | |
static portMUX_TYPE | mutex_logger = portMUX_INITIALIZER_UNLOCKED |
audio_tools::TfLiteAudioErrorReporter | my_error_reporter |
AudioKitStream * | pt_AudioKitStream = nullptr |
INLINE_VAR const Nano_BLE_ratio_info | ratio_table [] |
INLINE_VAR const char * | RxTxModeNames [] ={"UNDEFINED_MODE","TX_MODE","RX_MODE","RXTX_MODE" } |
static FS | SD |
static FS | SDFAT |
TimerAlarmRepeatingDriverESP8266 * | self |
class AudioMP34DT05 * | selfAudioMP34DT05 = nullptr |
static HardwareSerial | Serial |
class audio_tools::UserCallback * | simpleUserCallback = nullptr |
static uint32_t | spdif_buf [SPDIF_BUF_ARRAY_SIZE] |
static uint32_t * | spdif_ptr |
INLINE_VAR const char * | SUCCESS = "Success" |
static TimerAlarmRepeatingDriverMBED * | timerAlarmRepeating = nullptr |
static TimerAlarmRepeatingDriverSTM32 * | timerAlarmRepeating = nullptr |
static TimerAlarmRepeatingDriverAVR * | timerAlarmRepeatingRef = nullptr |
class audio_tools::TimerCallback * | timerCallbackArray = nullptr |
INLINE_VAR const char * | TRANSFER_ENCODING = "Transfer-Encoding" |
INLINE_VAR const char * | USER_AGENT = "User-Agent" |
INLINE_VAR const char * | wav_mime = "audio/wav" |
Generic Implementation of sound input and output for desktop environments using portaudio.
A Suite of C++ Audio Effects Classes Adapted from https://github.com/mhamilt/AudioEffectsSuite
This implementation collects together a set of Audio DSP Effects with heavy emphasis on modularity and class inheritance coded in a modern C++ style.
Converted to Header Only The original implementation is based on doubles. To save space, We are using floats. On a ESP32
enum G7xxCODEC_e |
Supported codecs by G7xxDecoder and G7xxEncoder.
struct __attribute__ | ( | (packed) | ) |
Opus header.
Simplified header w/o comments.
void IRAM_ATTR defaultPWMAudioOutputCallback | ( | ) |
separate method that can be defined as friend so that we can access protected information
timer callback: write the next frame to the pins
void audio_tools::I2S_IRQHandler | ( | void | ) |
I2S Event handler
INLINE_VAR const Nano_BLE_freq_info freq_table[] |
INLINE_VAR const Nano_BLE_ratio_info ratio_table[] |