arduino-audio-tools
Modules | Classes

Audio Coder and Decoder
More...

Modules

 Decoder
 Audio Decoder.
 
 Encoder
 Audio Encoder.
 
 ggwave
 

Classes

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  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  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...
 
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  AudioDecoder
 Docoding of encoded audio into PCM data. More...
 
class  AudioEncoder
 Encoding of PCM data. 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...
 
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  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...
 
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  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  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  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  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  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  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  ILBCDecoder
 Decoder for iLBC. Depends on https://github.com/pschatzmann/libilbc. More...
 
class  ILBCEncoder
 Encoder for iLBC - Depends on https://github.com/pschatzmann/libopenilbc. More...
 
class  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  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...
 
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  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  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...
 
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  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  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  VorbisDecoder
 Vorbis Streaming Decoder using https://github.com/pschatzmann/arduino-libvorbis-tremor. 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...
 
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...
 

Detailed Description

Audio Coder and Decoder