arduino-audio-tools
Loading...
Searching...
No Matches
Modules | Classes | Typedefs
Communications

Transmit Audio Please note that the standard Arduino WiFiClient and WifiServer (to use TCP/IP), Serial or BluetoothSerial are also supported.
More...

Collaboration diagram for Communications:

Modules

 FEC
 Forward Error Correction.
 
 HLS
 HTTP Live Streaming (HLS)
 
 Http
 Http client & server

 
 RTSP
 Real Time Streaming Protocol (RTSP)
 
 SPI Audio
 Serial Peripheral Interface (SPI) Audio.
 
 USB
 USB Audio: Device (UAC2) and Host (UAC1/UAC2)
 

Classes

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  AdaptiveResamplingBuffer
 A BaseBuffer<uint8_t> that wraps a raw (unresampled) backing buffer and transparently resamples on read to correct jitter and compensate for the slightly different clock rates between an audio source and audio target. Use separate tasks to write and read the data. Also make sure that you protect the access with a mutex or provide a thread-safe backing buffer! More...
 
class  AdaptiveResamplingStream
 An Audio Stream backed by a buffer (queue) which tries to correct jitter and automatically adjusts for the slightly different clock rates between an audio source and audio target. Use separate tasks to write and read the data. Also make sure that you protect the access with a mutex or provide a thread-safe buffer! More...
 
class  AudioClientRTSP
 A simple RTSPClient using https://github.com/pschatzmann/arduino-live555. More...
 
class  AudioLoRa
 Sends and receives audio over a LoRa radio link (via the sandeepmistry/arduino-LoRa library) as a regular AudioTools Stream, so it can be dropped into a StreamCopy pipeline like any other audio source/sink – e.g. StreamCopy(audioLoRa, i2sMic) to transmit, or StreamCopy(i2sSpeaker, audioLoRa) to receive. See AudioLoRaConfig's documentation first for why, even with its audio-tuned defaults, this only works at all in a narrow envelope (very low bitrate, short clips/bursts). More...
 
class  BLESerialClientArduinoBLE
 A BLE client that implements a serial protocol, so that it can be used to send and receive audio. In BLE terminology this is a Central. This implementation uses the ArduinoBLE library. More...
 
class  BLESerialClientBase
 Generic BLE serial client logic which is independent of the BLE API. In BLE terminology the client is a Central: it scans for a server that provides the service UUID and connects to it. More...
 
class  BLESerialClientESP32
 A BLE client that implements a serial protocol, so that it can be used to send and receive audio. In BLE terminology this is a Central. This implementation uses the BLE library of the ESP32 Arduino core (Bluedroid or NimBLE). More...
 
class  BLESerialPacketBuffer
 FIFO for BLE packets: in framed mode the packet boundaries are kept, otherwise the data is handled as a byte stream. All methods are protected by the optional mutex, so that the buffer can be filled and consumed by different tasks. More...
 
class  BLESerialServerArduinoBLE
 A BLE server that implements a serial protocol, so that it can be used to send and receive audio. In BLE terminology this is a Peripheral. This implementation uses the ArduinoBLE library. More...
 
class  BLESerialServerBase
 Generic BLE serial server logic which is independent of the BLE API. In BLE terminology the server is a Peripheral: the client writes the data which is received with readBytes() and reads the data which was provided with write(). More...
 
class  BLESerialServerESP32
 A BLE server that implements a serial protocol, so that it can be used to send and receive audio. In BLE terminology this is a Peripheral. This implementation uses the BLE library of the ESP32 Arduino core (Bluedroid or NimBLE). More...
 
class  BLESerialStream
 Common functionality of the BLE serial server and client: data is exchanged via two characteristics like a serial connection. The audio info can optionally be exchanged via a third characteristic. More...
 
class  ESPNowStream
 ESPNow as Arduino Stream. When use_send_ack is true we prevent any buffer overflows by blocking writes until the previous packet has been confirmed. When no acknowledgments are used, you might need to throttle the send speed to prevent any buffer overflow on the receiver side. More...
 
class  HDLCStream
 High-Level Data Link Control (HDLC) is a bit-oriented code-transparent synchronous data link layer protocol for reliable, framed, and error-checked communication. More...
 
class  NRF24Stream
 NRF24L01(+) Stream for sending and receiving audio via the nRF24L01 2.4GHz radio module. Optimized for low-latency, high-throughput audio with small 32-byte packets. More...
 
class  ObjectStream
 An Arduino Stream which makes sure that we read back the same size as we wrote. It adds a size prefix to the data stream. More...
 
class  RadioHeadStream
 Arduino Stream which is using the RadioHead library to send and receive data. We use the driver API directly. More...
 
class  RedisBuffer< T >
 Buffer implementation that stores and retrieves data from a Redis server using the Arduino Client. 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  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  WebSocketOutput
 A simple wrapper class that lets you use the standard Arduino Print class output commands to send audio data over a WebSocket connection. Uses https://github.com/Links2004/arduinoWebSockets. More...
 

Typedefs

using BLESerialClient = BLESerialClientESP32
 Default BLE serial client for the platform.
 
using BLESerialServer = BLESerialServerESP32
 Default BLE serial server for the platform.
 

Detailed Description

Transmit Audio Please note that the standard Arduino WiFiClient and WifiServer (to use TCP/IP), Serial or BluetoothSerial are also supported.

Typedef Documentation

◆ BLESerialClient

Default BLE serial client for the platform.

◆ BLESerialServer

Default BLE serial server for the platform.