arduino-audio-tools
|
Generic Implementation of sound input and output for desktop environments using portaudio. More...
Classes | |
class | A2DPConfig |
Configuration for A2DPStream. More... | |
class | A2DPStream |
Stream support for A2DP using https://github.com/pschatzmann/ESP32-A2DP: begin(TX_MODE) opens a a2dp_source and 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! Please note that this is a conveniance class that supports the stream api, however this is rather inefficient, beause quite a big buffer needs to be allocated. It is recommended to use the API with the callbacks. Examples can be found in the a2dp examples directory starting with basic. More... | |
class | AACDecoderFAAD |
AAC Decoder using faad: https://github.com/pschatzmann/arduino-libfaad This needs a stack of around 60000 and you need to make sure that memory is allocated on PSRAM. See https://www.pschatzmann.ch/home/2023/09/12/arduino-audio-tools-faat-aac-decoder/. 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 AudioInfo and provides the handlig of AudioInfo changes. More... | |
class | AACDecoderHelix |
AAC Decoder using libhelix: https://github.com/pschatzmann/arduino-libhelix This is basically just a simple wrapper to provide AudioInfo and AudioInfoSupport. 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 | AdapterAudioOutputToAudioStream |
Wrapper which converts a AudioStream to a AudioOutput. More... | |
class | AdapterAudioStreamToAudioOutput |
Wrapper which converts a AudioStream to a AudioOutput. More... | |
class | AdapterPrintToAudioOutput |
Wrapper which converts a Print to a AudioOutput. More... | |
class | ADPCMDecoder |
Decoder for ADPCM. Depends on https://github.com/pschatzmann/adpcm. More... | |
class | ADPCMDecoderXQ |
Decoder for ADPCM-XQ. Depends on https://github.com/pschatzmann/arduino-adpcm-xq. More... | |
class | ADPCMEncoder |
Encoder for ADPCM - Depends on https://github.com/pschatzmann/adpcm. More... | |
class | ADPCMEncoderXQ |
Encoder for ADPCM-XQ - Depends on https://github.com/pschatzmann/arduino-adpcm-xq. 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 | ADTSDecoder |
Audio Data Transport Stream (ADTS) is a format similar to Audio Data Interchange Format (ADIF), used by MPEG TS or Shoutcast to stream audio defined in MPEG-2 Part 7, usually AAC. This parser extracts all valid ADTS frames from the data stream ignoring other data. More... | |
struct | ADTSParser |
class | Allocator |
Memory allocateator which uses malloc. More... | |
class | AllocatorExt |
Memory allocateator which uses ps_malloc (on the ESP32) and if this fails it resorts to malloc. More... | |
struct | AllocSize |
class | AnalogAudioArduino |
Analog Data IO using a timer and the Arduino analogRead() method and writing using analogWrite();. 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 | AnalogConfigESP32 |
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 | AnalogConfigESP32V1 |
ESP32 specific configuration for i2s input via adc using the adc_continuous API. More... | |
class | AnalogConfigStd |
Generic ADC and DAC configuration. More... | |
class | AnalogDriverArduino |
Please use the AnalogAudioStream: Reading Analog Data using a timer and the Arduino analogRead() method and writing using analogWrite();. More... | |
class | AnalogDriverBase |
class | AnalogDriverESP32 |
Please use AnalogAudioStream: A very fast ADC and DAC using the ESP32 I2S interface. More... | |
class | AnalogDriverESP32V1 |
AnalogAudioStream: A very fast DAC using DMA using the new dac_continuous API. More... | |
class | AnalogDriverMBED |
Please use AnalogAudioStream: A ADC and DAC API for the Arduino Giga. More... | |
struct | AppropriateSumType |
We reduce the number of samples in a datastream by summing (binning) or averaging. This will result in the same number of channels but binSize times less samples. If Average is true the sum is divided by binSize. More... | |
struct | AppropriateSumType< int16_t > |
struct | AppropriateSumType< int24_t > |
struct | AppropriateSumType< int32_t > |
struct | AppropriateSumType< int8_t > |
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 gpio pins e.g. to implement a simple navigation control or volume control with buttons. More... | |
class | AudioBLEClient |
A simple BLE client that implements the serial protocol, so that it can be used to send and recevie audio. In BLE terminology this is a Central. More... | |
class | AudioBLEServer |
A simple BLE server that implements the serial protocol, so that it can be used to send and recevie audio. In BLE terminologiy this is a Peripheral. This implementation uses the ArduinoBLE library! This is working only correctly if the client sets the max MTU to a value >= 256. Otherwise some of the transmitted information gets silently dropped. More... | |
class | AudioBLEStream |
Transmit and receive data via BLE using a Serial API. The following additional experimental features are offered: setFramed(true) tries to keep the original write sizes; setAudioInfoActive(true) informs about changes in the audio info. More... | |
class | AudioBoardStream |
New functionality which replaces the AudioKitStream that is based on the legacy AudioKit library. This functionality uses the new arduino-audio-driver library! It is the same as I2SCodecStream extended by some AudioActions and some method calls to determine defined pin values. See https://github.com/pschatzmann/arduino-audio-driver. More... | |
class | AudioClientRTSP |
A simple RTSPClient using https://github.com/pschatzmann/arduino-live555. 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 | AudioDecoderExt |
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 | AudioEffectStream |
EffectsStream supporting variable bits_per_sample. This class is only available when __cplusplus >= 201703L. Otherwise AudioEffectStream results in using AudioEffectStream = AudioEffectStreamT<effect_t>;. 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 | AudioEncoderExt |
class | AudioESP32FFT |
AudioFFT using RealFFT. More... | |
class | AudioESP32ULP |
Outputs to ESP32 DAC through the ULP (Ultra> Low Power coprocessor), freeing I2S for other uses. Connect left channel on pin 25 Connect right channel on pin 26. 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 | AudioInfo |
Basic Audio information which drives e.g. I2S. More... | |
struct | AudioInfoLAME |
LAME parameters. More... | |
class | AudioInfoSource |
Supports the subscription to audio change notifications. More... | |
class | AudioInfoSupport |
Supports changes to the sampling rate, bits and channels. 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 | AudioKitStreamConfig |
Configuration for AudioKitStream: we use as subclass of I2SConfig. 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 | AudioOutput |
Abstract Audio Ouptut class. More... | |
class | AudioOutputAdapter |
Base class for Output Adpapters. 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(); Dependencies: ESP8266Audio Library Dependencies: ESP32-A2DP Library. More... | |
class | AudioPlayer |
Implements a simple audio player which supports the following commands: More... | |
class | AudioRealFFT |
AudioFFT using RealFFT. More... | |
struct | AudioSendData |
Protocol Record for Data. 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 | AudioSourceDynamicURL |
Audio Source which provides the data via the network from an URL. The URLs are stored in an Vector of dynamically allocated strings. More... | |
class | AudioSourceIdxSDFAT |
ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD implementation For UTF8 Support change SdFatConfig.h #define USE_UTF8_LONG_NAMES 1. 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. For UTF8 Support change SdFatConfig.h #define USE_UTF8_LONG_NAMES 1. 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 | AudioSourceSTD |
AudioSource using the standard C++ api. 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 | 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 | 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 | AudioWriterToAudioOutput |
Adapter class which lets an AudioWriter behave like a Print. More... | |
class | AVIDecoder |
AVI Container Decoder which can be fed with small chunks of data. The minimum length must be bigger then the header size! The file structure is documented at https://learn.microsoft.com/en-us/windows/win32/directshow/avi-riff-file-reference. More... | |
struct | AVIMainHeader |
struct | AVIStreamHeader |
class | BandPassFilter |
Biquad DF2 Band Pass 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 | 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 | BaseStream |
Base class for all Streams. It relies on write(const uint8_t *buffer, size_t size) and readBytes(uint8_t *buffer, size_t length). More... | |
class | Bin |
Provides reduced sampling rates through binning. More... | |
class | BinaryContainerDecoder |
Decodes the provided data from the DAT and CFG segments. More... | |
class | BinaryContainerEncoder |
Wraps the encoded data into Config, Data, and Meta segments so that we can recover the audio configuration and orignial segments if this is relevant. We assume that a full segment is written with each call of write(); The segments are separated with a new line character. More... | |
class | BinT |
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 | BitBangDecimationStream |
struct | BitmapInfoHeader |
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 | BufferRTOS |
Buffer implementation which is using a FreeRTOS StreamBuffer. The default allocator uses psram is available. 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 | CallbackConverterT |
You can provide a lambda expression to conver the data. More... | |
class | CallbackStream |
CallbackStream: A Stream that allows to register callback methods for accessing and providing data. The callbacks can be lambda expressions. More... | |
class | CallbackVolumeControl |
Provide the volume function as callback method: This is easy to use e.g together with a lamda function! More... | |
class | CatStream |
Provides data from a concatenation of Streams. Please note that the provided Streams can be played only once! You will need to reset them (e.g. moving the file pointer to the beginning) and readd them back if you want to process them a second time. The default timeout on the available() method is set to 0. This might be not good if you use e.g. a URLStream. More... | |
class | ChannelAvg |
class | ChannelAvgT |
We average pairs of channels in a datastream. E.g. if we have 4 channels we end up with 2 channels. The channels will be (channel_1 + channel_2)/2 (channel_3 - channel_4)/2. This is equivalent of stereo to mono conversion but will also work for quadric, sexic or octic audio. This will not work if you provide single channel data! More... | |
class | ChannelBinDiff |
Provides combination of binning and subtracting channels. More... | |
class | ChannelBinDiffT |
We first bin the channels then we calculate the difference between pairs of channels in a datastream. E.g. For binning, if we bin 4 samples in each channel we will have 4 times less samples per channel E.g. For subtracting if we have 4 channels we end up with 2 channels. The channels will be channel_1 - channel_2 channel_3 - channel_4 This is the same as combining binning and subtracting channels. This will not work if you provide single channel data! More... | |
class | ChannelConverter |
Increasing or decreasing the number of channels. More... | |
class | ChannelDiff |
class | ChannelDiffT |
We calculate the difference between pairs of channels in a datastream. E.g. if we have 4 channels we end up with 2 channels. The channels will be channel_1 - channel_2 channel_3 - channel_4 This is similar to background subtraction between two channels but will also work for quadric, sexic or octic audio. This will not work if you provide single channel data! 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 | ChannelReducerT |
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 | ChannelSplitOutput |
Simple functionality to extract mono streams from a multichannel (e.g. stereo) signal. More... | |
class | ChannelsSelectOutput |
Flexible functionality to extract one or more channels from a multichannel signal. Warning: the destinatios added with addOutput are not automatically notified about audio changes. 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 | CommonHeader |
class | Compressor |
Compressor inspired by https://github.com/YetAnotherElectronicsChannel/STM32_DSP_COMPRESSOR/blob/master/code/Src/main.c. 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 | ContainerDecoder |
Parent class for all container formats. More... | |
class | ContainerMP4 |
Minimum flexible parser for MPEG4 data (which is based on the Quicktime format). Small atoms will be make available via a callback method. The big (audio) content is written to the Print object which was specified in the constructor. Depends on https://github.com/pschatzmann/arduino-libhelix! More... | |
class | ContainerTarget |
ContainerTarget: forwards requests to both the output and the encoder/decoder and sets up the output chain for Containers. We also manage the proper sequence of the output classes. More... | |
class | ContainerTargetPrint |
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 | ConverterAutoCenterT |
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 | CopyChannels |
Copy channel Cx value of type T shifted by S bits to all Cn channels. More... | |
class | CopyDecoder |
Dummy Decoder which just copies the provided data to the output. You can define if it is PCM data. More... | |
class | CopyEncoder |
Dummy Encoder which just copies the provided data to the output. More... | |
class | CsvOutput |
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 | DACInfo |
Config info for DeltaSigma DAC. More... | |
class | DACOut |
Output method for DeltaSigma DAC. More... | |
struct | DataNode |
class | Debouncer |
Helper class to debounce user input from a push button. More... | |
class | Decimate |
Provides a reduced sampling rate by taking a sample at every factor location (ingoring factor-1 samples) More... | |
class | DecimateT |
Provides reduced sampling rates. More... | |
class | DecimationStreamExt |
Deciates an sample stream by the indicated factor: Decimation counts the number of set bits. Please note that the factor is specified as multiple of the bits_per_sample. It is also assumed that we have only one channel in the data stream. More... | |
class | DecoderAdapter |
Adapter class which allows the AudioDecoder API on a StreamingDecoder. More... | |
class | DecoderBase64 |
DecoderBase64 - Converts a Base64 encoded Stream into the original data stream. Decoding only gives a valid result if we start at a limit of 4 bytes. We therefore use by default a newline to determine a valid start boundary. More... | |
class | DecoderBasic |
DecoderBasic - supports mime type audio/basic Requires https://github.com/pschatzmann/arduino-libg7xx The content of the "audio/basic" subtype is single channel audio encoded using 8bit ISDN mu-law [PCM] at a sample rate of 8000 Hz. 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 | DecoderL16 |
DecoderL16 - Converts an 16 Bit Stream into 16Bits network byte order. More... | |
class | DecoderL8 |
DecoderL8 - Converts an 8 Bit Stream into 16Bits Most microcontrollers can not output 8 bit data directly. 8 bit data however is very memory efficient and helps if you need to store audio on constrained resources. This decoder translates 8bit data into 16bit data. By default the encoded data is represented as uint8_t, so the values are from 0 to 255. 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 | EncodedAudioOutput |
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 | EncoderBase64 |
EncoderBase64s - Encodes the input data into a Base64 string. By default each audio frame is followed by a new line, so that we can easily resynchronize the reading of a data stream. The generation of the new line can be configured with the setNewLine() method. More... | |
class | EncoderBasic |
EncoderBasic - supports mime type audio/basic. The content of the "audio/basic" subtype is single channel audio encoded using 8bit ISDN mu-law [PCM] at a sample rate of 8000 Hz. Requires https://github.com/pschatzmann/arduino-libg7xx. More... | |
class | EncoderFloat |
EncoderFloats - Encodes 16 bit PCM data stream to floats data. More... | |
class | EncoderL16 |
EncoderL16s - Condenses 16 bit PCM data stream to 8 bits data. Most microcontrollers can not process 8 bit audio data directly. 8 bit data however is very memory efficient and helps if you need to store audio on constrained resources. This encoder translates 16bit data into 8bit data. More... | |
class | EncoderL8 |
EncoderL8s - Condenses 16 bit PCM data stream to 8 bits data. Most microcontrollers can not process 8 bit audio data directly. 8 bit data however is very memory efficient and helps if you need to store audio on constrained resources. This encoder translates 16bit data into 8bit data. By default the encoded data is represented as uint8_t, so the values are from 0 to 255. 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ö.W. 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... | |
struct | FFTBin |
And individual FFT Bin. More... | |
class | FFTDisplay |
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 | FileLoop |
A simple class which implements a automatic looping file. The file needs to be of the class File from FS.h. The number of loops can be defined by calling setLoopCount(). You can also optinally limit the total looping file size by calling setSize();. More... | |
class | FileLoopT |
A simple class which implements a automatic looping file. In order to support different file implementation the file class is a template parameter. The number of loops can be defined by calling setLoopCount(). You can also optinally limit the total looping file size by calling setSize();. More... | |
class | FileOutput |
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 setOutput() 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 | float32 |
Stores float values as uint32_t so that we can use memory allocated with MALLOC_CAP_32BIT. More... | |
class | FloatAudio |
class | FormatConverterStream |
Converter which converts bits_per_sample, channels and the sample_rate. The conversion is supported both on the input and output side. More... | |
class | FrequncyAutoCorrelationStream |
Determine Frequency using Audio Correlation. based on https://github.com/akellyirl/AutoCorr_Freq_detect. More... | |
class | FrequncyZeroCrossingStream |
Determine Frequency using upward 0 crossings. 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 |
Generator which combines (mixes) multiple sound generators into one output. More... | |
class | GGWaveDecoder |
GGWaveDecoder: Translates audio into text Codec using https://github.com/ggerganov/ggwave-arduino. More... | |
class | GGWaveEncoder |
GGWaveEncoder: Translates text into audio Codec using https://github.com/ggerganov/ggwave-arduino. 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 | HammingFEC |
Hamming forware error correction. Inspired by https://github.com/nasserkessas/hamming-codes. More... | |
class | Hann |
Hann FFT Window function. More... | |
class | HardwareSerial |
class | HDLCStream |
High-Level Data Link Control (HDLC) is a bit-oriented code-transparent synchronous data link layer protocol. More... | |
class | HexDumpOutput |
Creates a Hex Dump. More... | |
class | HighPassFilter |
Biquad DF2 High Pass 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 | HighShelfFilter |
Biquad DF2 High Shelf 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 | HLSParser |
Simple Parser for HLS data. We select the entry with min bandwidth. More... | |
class | HLSStream |
HTTP Live Streaming using HLS: The result is a MPEG-TS data stream that must be decoded e.g. with a DecoderMTS. 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 | I2SBitBang |
I2S emulated with the help of the Arduion SPI api. More... | |
struct | I2SCodecConfig |
Configuration for I2SCodecStream. More... | |
class | I2SCodecStream |
I2S Stream which also sets up a codec chip and i2s. More... | |
class | I2SConfigESP32 |
Configuration for ESP32 legacy i2s. More... | |
class | I2SConfigESP32V1 |
Configuration for ESP32 i2s for IDF > 5.0. More... | |
class | I2SConfigStd |
Configuration for i2s. More... | |
class | I2SDriverESP32 |
Basic I2S API - for the ESP32. If we receive 1 channel, we expand the result to 2 channels. More... | |
class | I2SDriverESP32V1 |
Basic I2S API for the ESP32 (using the new API). https://docs.espressif.com/projects/esp-idf/en/v5.0.1/esp32/api-reference/peripherals/i2s.html#i2s-communication-mode. 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 See https://content.arduino.cc/assets/Nano_BLE_MCU-nRF52840_PS_v1.1.pdf Douplex mode (RXTX_MODE) is currently not supported, but it should be quite easy to implement. More... | |
class | I2SDriverSAMD |
Basic I2S API - for the SAMD. 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... | |
struct | IMAState |
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_3bytes_t |
24bit integer which is used for I2S sound processing. The values are really using 3 bytes. It works only on little endian machines! More... | |
class | int24_4bytes_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 | JpegOpenCV |
Display image with opencv to be used on the desktop. More... | |
class | JpegTFT |
Display jpeg image using https://github.com/Bodmer/TFT_eSPI and https://github.com/Bodmer/JPEGDecoder. 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 | LEDOutput |
LED output using the FastLED library. More... | |
struct | LEDOutputConfig |
class | LEDOutputUnoR4 |
LED output using the R4 LED matrix library. More... | |
struct | LEDOutputUnoR4Config |
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 | LowPassFilter |
Biquad DF2 Low Pass 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 | LowShelfFilter |
Biquad DF2 Low Shelf 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 | Maximilian |
AudioTools integration with Maximilian. More... | |
class | MeasuringStream |
Class which measures the thruput. More... | |
class | MedianFilter |
An embedded friendly, fast one-dimensional median filter algorithm implementation in C and C++ Useful for spike and noise removal from analog signals or other DSP Also known as "salt-and-pepper noise" or "impulse noise" filter. 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 | MemoryOutput |
Writes 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 | MetaDataFilterDecoder |
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 | MetaDataOutput |
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 | MiniAudioConfig |
Configuration for MiniAudio. More... | |
class | MiniAudioStream |
MiniAudio: https://miniaud.io/. More... | |
class | ModifyingOutput |
Abstract class: Objects can be put into a pipleline. More... | |
class | ModifyingStream |
Abstract class: Objects can be put into a pipleline. 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 |
class | MozziStream |
Stream that provides audio information that was generated using the Mozzi API using the updateControl() and updateAudio() methods. More... | |
class | MP3DecoderHelix |
MP3 Decoder using libhelix: https://github.com/pschatzmann/arduino-libhelix This is basically just a simple wrapper to provide AudioInfo and AudioInfoSupport. 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... | |
struct | MP4Atom |
Represents a single MPEG4 atom. More... | |
class | MP4ParseBuffer |
class | MTSDecoder1 |
MPEG-TS (MTS) decoder. Extracts the AAC audio data from a MPEG-TS (MTS) data stream. You can define the relevant stream types via the API. The parsing logic was taken from: https://github.com/Yokohama-Miyazawa/M5HLSPlayer/blob/main/src/AudioGeneratorTS.cpp Status: experimental! 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 | NOPConverter |
Dummy converter which does nothing. More... | |
class | NotchFilter |
Biquad DF2 Notch 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 | NullStream |
The Arduino Stream which provides silence and simulates a null device when used as audio target or audio source. 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. The templated NumberFormatConverterStreamT class is used based on the information provided by the bits_per_sample in the configuration. More... | |
class | NumberFormatConverterStreamT |
A more generic templated Converter which converts from a source type to a target type: You can use e.g. uint8_t, int8_t, int16_t, uint16_t, int24_t, uint32_t, int32_t, FloatAudio.AbstractMetaDat. This is quite handy because unsigned values and floating values are supported and you do not need to resort to use a Codec. More... | |
class | NumberReader |
Reads n numbers from an Arduino Stream. More... | |
class | Nuttall |
Nuttall FFT Window function. More... | |
class | OggContainerDecoder |
Decoder for Ogg Container. Decodes a packet from an Ogg container. The Ogg begin segment contains the AudioInfo structure. You can subclass and overwrite the beginOfSegment() method to implement your own headers Dependency: https://github.com/pschatzmann/arduino-libopus. More... | |
class | OggContainerEncoder |
Encoder for Ogg Container. Encodes a packet for an Ogg container. The Ogg begin segment contains the AudioInfo structure. You can subclass ond overwrite the writeHeader() method to implement your own header logic. When an optional encoder is specified in the constructor we package the encoded data. Dependency: https://github.com/pschatzmann/arduino-libopus. More... | |
class | OggContainerOutput |
Output class for the OggContainerEncoder. Each write is ending up as container entry. More... | |
class | OpusAudioDecoder |
OpusAudioDecoder: Depends on https://github.com/pschatzmann/arduino-libopus.git. More... | |
class | OpusAudioEncoder |
OpusAudioEncoder: Dependens 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. Dependency: https://github.com/pschatzmann/arduino-libopus. More... | |
class | OpusOggEncoder |
Opus Encoder which uses the Ogg Container: see https://datatracker.ietf.org/doc/html/rfc7845 Dependency: https://github.com/pschatzmann/arduino-libopus. More... | |
class | OpusOggWriter |
struct | OpusSettings |
Setting for Opus Decoder. More... | |
class | OutputMixer |
Mixing of multiple outputs to one final output. More... | |
class | OversamplingDAC |
Abstract Software Implementation of an Oversampling DAC. More... | |
class | OversamplingDAC32 |
Software Implementation of a Simple DAC - We quantize a digital int16_t sample my mapping the value to the range of 0b0 to 0b11111111111111111111111111111111, where the intensity is represented by the number of ones. This gives an overall resultion of 5 bits and just uses one single timer. More... | |
class | Parameter |
A constant value. More... | |
class | ParseBuffer |
We try to keep the necessary buffer for parsing as small as possible, The data() method provides the start of the actual data and with consume we remove the processed data from the buffer to make space again. More... | |
class | ParseObject |
class | PDMMonoStreamT |
Applies low pass filter to a decimated pdm signal to convert it to pcm. More... | |
class | PIDController |
A simple header only PID Controller. More... | |
struct | PinInfoESP32 |
Information for a PIN. More... | |
class | PinkNoiseGenerator |
Generates pink noise. More... | |
class | Pipeline |
We can build a input or an output chain: an input chain starts with setInput(); followed by add() an output chain consinsts of add() and ends with setOutput();. More... | |
class | PitchShift |
Shifts the pitch by the indicated step size: e.g. 2 doubles the pitch. More... | |
struct | PitchShiftInfo |
Configuration for PitchShiftOutput: set the pitch_shift to define the shift. More... | |
class | PitchShiftOutput |
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 | ProgressStream |
Generic calss to measure the the total bytes which were processed in order to calculate the progress as a percentage of the total size. More... | |
class | ProgressStreamInfo |
Configuration for ProgressStream. More... | |
class | PureDataStream |
Input and output of Pure Data PD using code generated by the hvcc compiler. The audio format is defined by the sample rate in the Heavy constructor, the number of channels in the ADC and DAC and the bits_per_sample of 16. Therefore the audio format can not be changed dynamically. I recommend to make sure that the input format and output format is consistent, otherwise you need to change the format in PD. More... | |
class | PWMAudioOutput |
Common functionality for PWM output. Please use the PWMAudioOutput typedef instead which references the implementation. More... | |
struct | PWMConfig |
Configuration data for PWM audio output. More... | |
class | PWMDAC |
Audio Output with PWM signal. 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 | PWMDriverRenesas |
Audio output to PWM pins for Renesas based Arduino implementations. 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 | QueueFromVector |
FIFO Queue which is based on a Vector. More... | |
class | QueueLockFree |
A simple single producer, single consumer lock free queue. More... | |
class | QueueRTOS |
FIFO Queue whch is based on the FreeRTOS queue API. The default allocator will allocate the memory from psram if available. More... | |
class | QueueStream |
Stream 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 | R2RConfig |
R2R configuration. More... | |
class | R2RDriver |
R2R driver which uses the Arduino API to setup and write to the digital pins. More... | |
class | R2RDriverBase |
R2R driver base class. More... | |
class | R2ROutput |
Output to R-2R DAC. You need to define the used digital pins in the configuration. Any number of bits is supported on max 2 channels. For a 4 bit single channel, you need to define 4 digital pins. see https://www.electronics-tutorials.ws/combination/r-2r-dac.html The default driver implementation uses Arduino digitalWrite(). You can provide your own optimized driver. More... | |
class | ReadioHeadStream |
Arduino Stream which is using the RadioHead library to send and receive data. We use the river API directly. More... | |
struct | ReasampleLinearInterpolation |
range 0:1 More... | |
struct | RECT |
class | Rectange |
Rectange FFT Window function. More... | |
class | ReedSolomonFEC |
Forward error correction using Reed-Solomon: write is encoding and readBytes does the decoding. More... | |
class | ReformatBaseStream |
Base class for chained converting streams. More... | |
struct | Resample2Point3Order |
struct | Resample4Point2Order |
struct | ResampleBSpline |
range -1:2 More... | |
struct | ResampleConfig |
Optional Configuration object. The critical information is the channels and the step_size. All other information is not used. More... | |
struct | ResampleLagrange |
range -1 : 2 More... | |
struct | ResampleParabolic |
class | ResampleStream |
Dynamic Resampling. We can use a variable factor to speed up or slow down the playback. More... | |
struct | ResmpleHermite |
class | RingBuffer |
Implements a typed Ringbuffer. More... | |
class | RingBufferFile |
An File backed Ring Buffer that we can use to receive streaming audio. We expect an open p_file as parameter. More... | |
class | RingBufferStream |
An AudioStream backed by a Ringbuffer. We can write to the end and read from the beginning of the stream. More... | |
class | RTSPFormatAbtX |
abtX format for RTSP https://en.wikipedia.org/wiki/RTP_payload_formats More... | |
class | RTSPFormatAudioTools |
RTSPFormat which supports the AudioInfo class. More... | |
class | RTSPFormatG711 |
G711 μ-Law format for RTSP https://en.wikipedia.org/wiki/RTP_payload_formats Packet intervall: 20, frame size: any. More... | |
class | RTSPFormatGSM |
GSM format for RTSP https://en.wikipedia.org/wiki/RTP_payload_formats. More... | |
class | RTSPFormatOpus |
Opus format for RTSP https://en.wikipedia.org/wiki/RTP_payload_formats. More... | |
class | RTSPFormatPCM |
PCM format for RTSP https://en.wikipedia.org/wiki/RTP_payload_formats. More... | |
class | RTSPFormatPCM8 |
L8 format for RTSP https://en.wikipedia.org/wiki/RTP_payload_formats. More... | |
class | RTSPOutput |
We can write PCM data to the RTSPOutput. This is encoded by the indicated encoder (e.g. SBCEncoder) and can be consumed by a RTSPServer. You have to make sure that the codec supports the provided audio format: e.g. GSM support only 8000 samples per second with one channel. Depends on the https://github.com/pschatzmann/Micro-RTSP-Audio/ library. More... | |
class | RTSPOutputPCMInfo |
PCMInfo subclass which provides the audio information from the related AudioStream Depends on the https://github.com/pschatzmann/Micro-RTSP-Audio/ library. More... | |
class | RTSPPCMAudioInfo |
PCMInfo subclass which provides the audio information from the AudioInfo parameter. More... | |
class | RTSPSourceFromAudioStream |
Simple Facade which can turn AudioStream into a IAudioSource. This way we can e.g. use an I2SStream as source to stream data Depends on the https://github.com/pschatzmann/Micro-RTSP-Audio/ library. 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 Depends on the https://github.com/pschatzmann/Micro-RTSP-Audio/ library. More... | |
class | SawToothGenerator |
SawToothGenerator. 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 SD 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 | SerialDAC |
A SimpleDAC which uses the Serial UART to output values. This implementation is not using any timers and therefore should work on any microcontroller. 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 |
struct | SimpleContainerMetaDataHeader |
class | SimpleDAC |
Software Implementation of a Simple DAC - We quantize a digital int16_t sample my mapping the value to the range of 0b0 to info.output_bits number of 1, where the intensity is represented by the number of ones. This is very similar to PWM! 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 using degrees 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 | Slice |
Helps to split up a big memory array into smaller slices. There are no additinal heap allocations! Example: if we have an array with 9 entries (1,2,3,4,5,6,7,8,9): slices(5) gives 2. slice(5,0) returns size 5 with 1,2,3,4,5 and slice(5,1) returns size 4 with 6,7,8,9! 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 float (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 | SPDIFOutput |
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 | StdioStream |
Direct binary Audio Output to stdout. On linux you can hear the audio e.g. with ./generator | aplay -f cd or reading data from stdin. 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. You need to install https://github.com/pschatzmann/Arduino-STK 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 |
Simple Pitch shifter effect class: This class implements a simple pitch shifter using a delay line. More... | |
class | STKStream |
STK Stream for Instrument or Voicer. More... | |
class | Str |
Str which keeps the data on the heap. We grow the allocated memory only if the copy source is not fitting. More... | |
class | Stream |
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 | StreamingDecoderAdapter |
Converts any AudioDecoder to a StreamingDecoder. More... | |
class | StrView |
A simple wrapper to provide string functions on existing allocated char*. If the underlying char* is a const we do not allow any updates; The ownership of the char* must be managed externally! More... | |
class | SynchronizedBuffer |
Wrapper class that can turn any Buffer into a thread save implementation. 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 | Task |
FreeRTOS task. 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 | 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 or receiving of the audio data to limit it to the indicated sample rate. More... | |
struct | ThrottleConfig |
Configure Throttle setting. More... | |
class | TimedStream |
AudioStream class that can define a start and (an optional) stop time Usually it is used to wrap an Audio Sink (e.g. I2SStream), but wrapping an Audio Source is supported as well. Only wrap classes which represent PCM data! 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 | 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 | TimerAlarmRepeatingDriverRenesas |
Repeating Timer functions for repeated execution: Plaease use the typedef TimerAlarmRepeating. By default we use a new GPT timer. You can also request 1 AGT timer by calling setTimer(1);. More... | |
class | TimerAlarmRepeatingDriverSTM32 |
STM32 Repeating Timer functions for repeated execution: Please use the typedef TimerAlarmRepeating. By default the TIM1 is used. 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 | TransformationReader |
ConverterStream Helper class which implements the readBytes with the help of write. More... | |
class | Tremolo |
Tremolo AudioEffect. More... | |
class | Triangle |
Triangle FFT Window function. More... | |
class | UDPStream |
A UDP class which makes sure that we can use UDP as AudioSource and AudioSink. By default the WiFiUDP object is used and we login to wifi if the ssid and password is provided and we are not already connected. More... | |
class | Url |
URL parser which breaks a full url string up into its individual parts. More... | |
class | URLHistory |
class | URLLoaderHLS |
class | URLLoaderHLSBase |
Abstract API for URLLoaderHLS. More... | |
class | URLLoaderHLSOutput |
URLLoader which saves the HLS segments to the indicated output. 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 | 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 | VBANConfig |
class | VBANStream |
VBAN Audio Source and Sink for the ESP32. For further details please see https://vb-audio.com/Voicemeeter/vban.htm . Inspired by https://github.com/rkinnett/ESP32-VBAN-Audio-Source/tree/master and https://github.com/rkinnett/ESP32-VBAN-Network-Audio-Player. 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 | VideoAudioBufferedSync |
Logic to Synchronize video and audio output: we use a buffer to store the audio and instead of delaying the frames with delay() we play audio. The bufferSize defines the audio buffer in bytes. The correctionMs is used to slow down or speed up the playback of the video to prevent any audio buffer underflows. More... | |
class | VideoAudioSync |
Logic to Synchronize video and audio output: This is the minimum implementatin which actually does not synchronize, but directly processes the data. No additinal memory is used! Provide your own optimized platform specific implementation. More... | |
class | VideoOutput |
Abstract class for video playback. This class is used to assemble a complete video frame in memory. 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 | VolumeMeter |
A simple class to determine the volume. You can use it as final output or as output or input in your audio chain. 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 | VolumeSupport |
Supports the setting and getting of the volume. More... | |
class | VorbisDecoder |
Vorbis Streaming Decoder using https://github.com/pschatzmann/arduino-libvorbis-tremor. 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 |
A simple WAVDecoder: We parse the header data on the first record to determine the format. If no AudioDecoderExt is specified we just write the PCM data to the output that is defined by calling setOutput(). You can define a ADPCM decoder to decode WAV files that contain ADPCM data. Please note that you need to call begin() everytime you process a new file to let the decoder know that we start with a new header. More... | |
class | WAVEncoder |
A simple WAV file encoder. If no AudioEncoderExt is specified the WAV file contains PCM data, otherwise it is encoded as ADPCM. The WAV header is written with the first writing of audio data. Calling begin() is making sure that the header is written again. More... | |
struct | WAVFormatX |
class | WAVHeader |
Parser for Wav header data for details see https://de.wikipedia.org/wiki/RIFF_WAVE. More... | |
struct | WavIMAAudioInfo |
Sound information which is available in the WAV header - adjusted for IMA ADPCM. More... | |
class | WavIMADecoder |
Obsolete: WavIMADecoder - based on WAVDecoder - We parse the header data as we receive it and send the sound data to the stream which was indicated in the constructor. Only WAV files with WAVE_FORMAT_IMA_ADPCM are supported by this codec! More... | |
class | WavIMAHeader |
class | Welch |
Welch FFT Window function. More... | |
class | WhiteNoiseGenerator |
Generates a random noise sound with the help of rand() 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 | AnalogConfig = AnalogConfigESP32 |
using | AnalogDriver = AnalogDriverArduino |
AnalogAudioStream. | |
typedef sdfat::SdFs | AudioFs |
using | Chart = ChartT< int16_t > |
using | DecoderFromStreaming = DecoderAdapter |
typedef int16_t | effect_t |
typedef float | effectsuite_t |
using | EncodedAudioPrint = EncodedAudioOutput |
using | FOURCC = char[4] |
using | I2SConfig = I2SConfigESP32 |
using | I2SDriver = I2SDriverESP32 |
using | int24_t = audio_tools::int24_4bytes_t |
using | JupyterAudio = JupyterAudioT< int16_t > |
typedef void(* | my_repeating_timer_callback_t) (void *obj) |
using | PCMDecoder = CopyDecoder |
using | PCMEncoder = CopyEncoder |
using | PDMMonoStream = PDMMonoStreamT< int16_t > |
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) |
using | sample_rate_t = uint32_t |
typedef sdfat::SdSpiConfig | SdSpiConfig |
using | SPDIFStream = SPDIFOutput |
using | StreamCopy = StreamCopyT< uint8_t > |
We provide the typeless StreamCopy. More... | |
template<class T > | |
using | SynchronizedBufferRTOS = BufferRTOS< T > |
using | TimerAlarmRepeatingDriver = TimerAlarmRepeatingDriverAVR |
use TimerAlarmRepeating! | |
using | VolumeOutput = VolumeMeter |
using | VolumePrint = VolumeMeter |
Enumerations | |
enum | A2DPNoData { A2DPSilence , A2DPWhoosh } |
A2DP Action when there is no data. | |
enum | A2DPStartLogic { StartWhenBufferFull , StartOnConnect } |
A2DP Startup Logic. | |
enum class | ADPCMNoiseShaping { AD_NOISE_SHAPING_OFF = 0 , AD_NOISE_SHAPING_STATIC = 1 , AD_NOISE_SHAPING_DYNAMIC = 2 } |
enum class | AudioFormat : uint16_t { UNKNOWN = 0x0000 , PCM = 0x0001 , ADPCM = 0x0002 , IEEE_FLOAT = 0x0003 , ALAW = 0x0006 , MULAW = 0x0007 , OKI_ADPCM = 0x0010 , DVI_ADPCM = 0x0011 , MEDIASPACE_ADPCM = 0x0012 , SIERRA_ADPCM = 0x0013 , G723_ADPCM = 0x0014 , DIALOGIC_OKI_ADPCM = 0x0017 , MEDIAVISION_ADPCM = 0x0018 , YAMAHA_ADPCM = 0x0020 , ANTEX_ADPCME = 0x0033 , DIGIADPCM = 0x0036 , NMS_VBXADPCM = 0x0038 , CS_IMAADPCM = 0x0039 , ROCKWELL_ADPCM = 0x003B , G721_ADPCM = 0x0040 , G726_ADPCM = 0x0064 , G722_ADPCM = 0x0065 , INFOCOM_ITS_G721_ADPCM = 0x008B , ZYXEL_ADPCM = 0x0097 , RHETOREX_ADPCM = 0x0100 , SANYO_LD_ADPCM = 0x0125 , G726ADPCM = 0x0140 , UNISYS_NAP_ADPCM = 0x0170 } |
Audio format codes used by Microsoft e.g. in avi or wav files. | |
enum class | AudioType : uint8_t { PCM , MP3 , AAC , WAV , ADPC } |
enum | Base46Logic { NoCR , CRforFrame , CRforWrite } |
enum | BinaryContainerEncoderError { InvalidHeader , InvalidChecksum , DataMissing } |
Error types. | |
enum | chunk_result { IMA_ERR_INVALID_CHUNK = -2 , IMA_ERR_INVALID_CONTAINER , IMA_CHUNK_OK , IMA_CHUNK_UNKNOWN } |
Parser for Wav header data adjusted for IMA ADPCM format - partially based on CodecWAV.h for details see https://de.wikipedia.org/wiki/RIFF_WAVE. More... | |
enum class | ContainerType : uint8_t { Header = 1 , Audio = 2 , Meta = 3 , Undefined = 0 } |
enum | FileMode { FILE_READ ='r' , FILE_WRITE ='w' , FILE_APPEND ='a' } |
enum | FillLeftAndRightStatus { Auto , LeftIsEmpty , RightIsEmpty } |
Configure ConverterFillLeftAndRight. | |
enum | G7xxCODEC_e { g723_24 , g721 , g723_40 , others } |
Supported codecs by G7xxDecoder and G7xxEncoder. More... | |
enum class | I2SChannelSelect { Stereo , Left , Right , Default } |
Select left or right channel when number of channels = 1. | |
enum | I2SFormat { I2S_STD_FORMAT , I2S_LSB_FORMAT , I2S_MSB_FORMAT , I2S_PHILIPS_FORMAT , I2S_RIGHT_JUSTIFIED_FORMAT , I2S_LEFT_JUSTIFIED_FORMAT , I2S_PCM } |
I2S Formats. | |
enum | I2SSignalType { Digital , Analog , PDM , TDM } |
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 } |
Memory types. | |
enum | MetaDataType { Title , Artist , Album , Genre , Name , Description } |
Type of meta info. | |
enum | MTSStreamType { STREAM_TYPE_VIDEO = 0x01 , STREAM_TYPE_VIDEO_H262 = 0x02 , STREAM_TYPE_AUDIO_11172 = 0x03 , STREAM_TYPE_AUDIO_13818_3 = 0x04 , STREAM_TYPE_PRV_SECTIONS = 0x05 , STREAM_TYPE_PES_PRV = 0x06 , STREAM_TYPE_MHEG = 0x07 , STREAM_TYPE_H222_0_DSM_CC = 0x08 , STREAM_TYPE_H222_1 = 0x09 , STREAM_TYPE_A = 0x0A , STREAM_TYPE_B = 0x0B , STREAM_TYPE_C = 0x0C , STREAM_TYPE_D = 0x0D , STREAM_TYPE_H222_0_AUX = 0x0E , STREAM_TYPE_AUDIO_AAC = 0x0F , STREAM_TYPE_VISUAL = 0x10 , STREAM_TYPE_AUDIO_LATM = 0x11 , STREAM_TYPE_SL_PES = 0x12 , STREAM_TYPE_SL_SECTIONS = 0x13 , STREAM_TYPE_SYNC_DOWNLOAD = 0x14 , STREAM_TYPE_PES_METADATA = 0x15 , STREAM_TYPE_METDATA_SECTIONS = 0x16 , STREAM_TYPE_METADATA_DATA_CAROUSEL = 0x17 , STREAM_TYPE_METADATA_OBJ_CAROUSEL = 0x18 , STREAM_TYPE_METADATA_SYNC_DOWNLOAD = 0x19 , STREAM_TYPE_IPMP = 0x1A , STREAM_TYPE_VIDEO_AVC = 0X1B , STREAM_TYPE_VIDEO_H222_0 = 0x1C , STREAM_TYPE_DCII_VIDEO = 0x80 , STREAM_TYPE_AUDIO_A53 = 0x81 , STREAM_TYPE_SCTE_STD_SUBTITLE = 0x82 , STREAM_TYPE_SCTE_ISOCH_DATA = 0x83 , STREAM_TYPE_ATSC_PROG_ID = 0x85 , STREAM_TYPE_SCTE_25 = 0x86 , STREAM_TYPE_AUDIO_EAC3 = 0x87 , STREAM_TYPE_AUDIO_DTS_HD = 0x88 , STREAM_TYPE_DVB_MPE_FEC = 0x90 , STREAM_TYPE_ULE = 0x91 , STREAM_TYPE_VEI = 0x92 , STREAM_TYPE_ATSC_DATA_SERVICE_TABLE = 0x95 , STREAM_TYPE_SCTE_IP_DATA = 0xA0 , STREAM_TYPE_DCII_TEXT = 0xC0 , STREAM_TYPE_ATSC_SYNC_DATA = 0xC2 , STREAM_TYPE_SCTE_AYSNC_DATA = 0xC3 , STREAM_TYPE_ATSC_USER_PRIV_PROG_ELEMENTS = 0xC4 , STREAM_TYPE_VC1 = 0xEA , STREAM_TYPE_ATSC_USER_PRIV = 0xEB } |
enum | ParseObjectType { AVIList , AVIChunk , AVIStreamData } |
enum | ParseState { ParseHeader , ParseHdrl , ParseAvih , ParseStrl , SubChunkContinue , SubChunk , ParseRec , ParseStrf , AfterStrf , ParseMovi , ParseIgnore } |
enum | ParseStatus { TagNotFound , PartialTagAtTail , TagFoundPartial , TagFoundComplete , TagProcessed } |
current status of the parsing | |
enum class | RecordType : uint8_t { Undefined , Begin , Send , Receive , End } |
enum | RxTxMode { UNDEFINED_MODE =0 , TX_MODE =1 , RX_MODE =2 , RXTX_MODE =3 } |
The Microcontroller is the Audio Source (TX_MODE) or Audio Sink (RX_MODE). RXTX_MODE is Source and Sink at the same time! | |
enum | SeekMode { SeekSet = 0 , SeekCur = 1 , SeekEnd = 2 } |
enum | StreamContentType { Audio , Video } |
enum | TimerFunction { DirectTimerCallback , TimerCallbackInThread , SimpleThreadLoop } |
enum | TimeUnit { MS , US , HZ } |
Time Units. | |
enum class | TransmitRole : uint8_t { Sender , Receiver } |
enum | UlpDac { ULP_DAC1 = 1 , ULP_DAC2 = 2 } |
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 uint8_t | checkSum (const uint8_t *data, size_t len) |
Calculates the checksum. | |
static uint16_t | convert8DAC (int64_t value, int value_bits_per_sample) |
void | defaultPWMAudioOutputCallback () |
void | delay (unsigned long ms) |
void | delayMicroseconds (unsigned int us) |
void | fftLEDOutput (LEDOutputConfig *cfg, LEDOutput *matrix) |
Default update implementation which provides the fft result as "barchart". | |
void | fftLEDOutputUnoR4 (LEDOutputUnoR4Config *cfg, LEDOutputUnoR4 *matrix) |
Default update implementation which provides the fft result as "barchart". | |
int | getCodec2Mode (int bits_per_second) |
Convert bits per sample to Codec2 mode. | |
CHSV | getDefaultColor (int x, int y, int magnitude) |
Default logic to update the color for the indicated x,y position. | |
void | I2S_IRQHandler (void) |
void | I2S_IRQRead (void) |
void | I2S_IRQWrite (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. | |
template<typename T > | |
T | mapT (T x, T in_min, T in_max, T out_min, T out_max) |
Similar to Arduino map function but using floats. More... | |
unsigned long | micros (void) |
uint32_t | millis () |
Returns the milliseconds since the start. | |
float | operator* (float one, float16 two) |
float | operator* (float one, float32 two) |
float | operator* (float16 one, float two) |
float | operator* (float16 one, float16 two) |
float | operator* (float32 one, float two) |
float | operator* (float32 one, float32 two) |
float | operator+ (float one, float16 two) |
float | operator+ (float one, float32 two) |
float | operator+ (float16 one, float two) |
float | operator+ (float16 one, float16 two) |
float | operator+ (float32 one, float two) |
float | operator+ (float32 one, float32 two) |
float | operator- (float one, float16 two) |
float | operator- (float one, float32 two) |
float | operator- (float16 one, float two) |
float | operator- (float16 one, float16 two) |
float | operator- (float32 one, float two) |
float | operator- (float32 one, float32 two) |
float | operator/ (float one, float16 two) |
float | operator/ (float one, float32 two) |
float | operator/ (float16 one, float two) |
float | operator/ (float16 one, float16 two) |
float | operator/ (float32 one, float two) |
float | operator/ (float32 one, float32 two) |
template<typename T > | |
T | readSample (Stream *p_stream) |
guaranteed to return the requested data | |
template<typename T > | |
size_t | readSamples (Stream *p_stream, T *data, int samples, int retryCount=-1) |
guaranteed to return the requested data | |
static size_t | strnlength (const char *s, size_t n) |
unfortunatly strnlen or strnlen_s is not available in all implementations | |
static void | timerCallback (void *obj) |
static const char * | toStr (MetaDataType t) |
Converts the MetaDataType to a string. | |
void | volumeLEDOutput (LEDOutputConfig *cfg, LEDOutput *matrix) |
Default update implementation which provides the fft result as "barchart". | |
void | volumeLEDOutputUnoR4 (LEDOutputUnoR4Config *cfg, LEDOutputUnoR4 *matrix) |
Default update implementation which provides the fft result as "barchart". | |
void | waitFor (bool &flag) |
wait for flag to be active | |
template<typename T > | |
size_t | writeSamples (Print *p_out, T *data, int samples, int maxSamples=512) |
guaranteed to return the requested data | |
Variables | |
static BufferRTOS< uint8_t > | a2dp_buffer {0, A2DP_BUFFER_SIZE, portMAX_DELAY, portMAX_DELAY} |
static A2DPStream * | A2DPStream_self =nullptr |
static const char * | ACCEPT = "Accept" |
static const char * | ACCEPT_ALL = "*/*" |
static const char * | ACCEPT_ENCODING = "Accept-Encoding" |
static PWMDriverAVR * | accessAudioPWM = nullptr |
AudioInfoSupport * | audioChangeFDK = nullptr |
static AudioInfoSupport * | audioChangeMAD =nullptr |
static MusicalNotes | AudioFFTNotes |
static const int | B64index [256] |
static const int16_t * | bmc_tab = (int16_t *)bmc_tab_uint |
static const uint16_t | bmc_tab_uint [256] |
static const char * | CHUNKED = "chunked" |
static const char * | CON_CLOSE = "close" |
static const char * | CON_KEEP_ALIVE = "keep-alive" |
static const char * | CONNECTION = "Connection" |
static const char * | CONTENT_LENGTH = "Content-Length" |
static const char * | CONTENT_TYPE = "Content-Type" |
static const char * | DEFAULT_AGENT |
static AllocatorExt | DefaultAllocator |
static char | encoding_table [] |
ESPNowStream * | ESPNowStreamSelf = nullptr |
static Mutex | fft_mux |
static const Nano_BLE_freq_info | freq_table [] |
static 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" } |
static const char * | HOST_C = "Host" |
static int | i2s_buffer_size = 0 |
static 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"} |
static const char * | i2s_signal_types [] = {"Digital","Analog","PDM","TDM"} |
static uint32_t | i2s_underflow_count = 0 |
static const char * | id3_v2_tags [] = {"TALB", "TOPE", "TPE1", "TIT2", "TCON"} |
static const int | ID3FrameSize = 11 |
static const char * | IDENTITY = "identity" |
const int16_t | ima_index_table [16] |
const int32_t | ima_step_table [89] |
static effectsuite_t ** | interpolationTable = nullptr |
Table of interpolation values as a 2D array indexed by interpolationTable[pointIndex][alphaIndex]. | |
static bool | is_a2dp_active = false |
static const char * | LOCATION = "Location" |
static const char * | MetaDataTypeStr [] = {"Title", "Artist", "Album", "Genre","Name", "Description"} |
static const char * | methods [] |
static const char * | mime_pcm = "audio/pcm" |
Mime type for PCM. | |
static int | mod_table [] = {0, 2, 1} |
volatile uint32_t | output_frame_count = 0 |
static uint8_t * | p_i2s_array = nullptr |
static uint8_t * | p_i2s_array_1 = nullptr |
static uint8_t * | p_i2s_array_2 = nullptr |
static BaseBuffer< uint8_t > * | p_i2s_buffer = nullptr |
static Stream * | p_nano_ble_stream = nullptr |
static AudioKitStream * | pt_AudioKitStream = nullptr |
audio_tools::R2RDriver | r2r_driver |
static const Nano_BLE_ratio_info | ratio_table [] |
static const char * | RxTxModeNames [4] ={"UNDEFINED_MODE","TX_MODE","RX_MODE","RXTX_MODE" } |
Text string (description) for RxTxMode. | |
static FS | SD |
static FS | SDFAT |
static AudioActions * | selfAudioActions = nullptr |
static AudioBLEClient * | selfAudioBLEClient = nullptr |
static AudioBLEClient * | selfAudioBLEClient = nullptr |
class AudioBLEServer * | selfAudioBLEServer = nullptr |
class AudioMP34DT05 * | selfAudioMP34DT05 = nullptr |
FFTDisplay * | selfFFTDisplay = nullptr |
static HardwareSerial | Serial |
static uint32_t | spdif_buf [(((192 *(64/8) *2)/2)/sizeof(uint32_t))] |
static uint32_t * | spdif_ptr = nullptr |
static const char * | SUCCESS = "Success" |
static Vector< char > | temp_buffer {0} |
workng buffer on the heap | |
static TimerAlarmRepeatingDriverMBED * | timerAlarmRepeating = nullptr |
static TimerAlarmRepeatingDriverSTM32 * | timerAlarmRepeating = nullptr |
static TimerAlarmRepeatingDriverAVR * | timerAlarmRepeatingRef = nullptr |
static const char * | TimeUnitStr [3] {"MS","US","HZ"} |
static const char * | TRANSFER_ENCODING = "Transfer-Encoding" |
static const char * | USER_AGENT = "User-Agent" |
const char * | wav_ima_mime = "audio/x-wav" |
static const char * | wav_mime = "audio/wav" |
Generic Implementation of sound input and output for desktop environments using portaudio.
enum chunk_result |
Parser for Wav header data adjusted for IMA ADPCM format - partially based on CodecWAV.h for details see https://de.wikipedia.org/wiki/RIFF_WAVE.
enum G7xxCODEC_e |
Supported codecs by G7xxDecoder and G7xxEncoder.
enum MTSStreamType |
PMT Program Element Stream Type
struct __attribute__ | ( | (packed) | ) |
Opus header.
Simplified header w/o comments.
static void defaultPWMAudioOutputCallback | ( | ) |
separate method that can be defined as friend so that we can access protected information
void audio_tools::I2S_IRQHandler | ( | void | ) |
I2S Event handler
|
inline |
Similar to Arduino map function but using floats.
x | |
in_min | |
in_max | |
out_min | |
out_max |
|
static |
|
static |
|
static |
|
static |
const int16_t ima_index_table[16] |
const int32_t ima_step_table[89] |
|
static |
|
static |