-
-
Notifications
You must be signed in to change notification settings - Fork 239
Audio Sources and Sinks
Phil Schatzmann edited this page Sep 1, 2024
·
7 revisions
You can read audio data from “Audio Sources” and you write them to “Audio Sinks”.
As “Audio Sources” we will have e.g.:
- Digital Microphones – I2SStream
- Analog Microphones – AnalogAudioStream
- Files on the Internet – URLStream
- Streaming Internet Radios - ICYStream
- Generated Sound – GeneratedSoundStream
- Encoded Audio - EncodedAudioStream
- Mobile Phone A2DP Bluetooth – A2DPStream
- Binary Data in Flash Memory – MemoryStream
- Audio generated by STK Framework - STKStream
- Desktop Integration - PortAudioStream MiniAudioStream StdioStream
- A Timer based Source - TimerCallbackAudioStream
- ESP32 Lyrat/AudioKit - AudioBoardStream, I2SCodecStream, (AudioKitStream)
- Input using FIR, IIR Filters - FilteredStream
- Tensorflow Lite - TfLiteAudioStream
- Converting Streams
- Communication - ESPNowStream, UDPStream
- Any other Arduino Classes implementing Streams: SD, Ethernet etc
As “Audio Sinks” we will have e.g:
- external DAC – I2SStream
- Analog output e.g. to an Amplifier – AnalogAudioStream
- Output using PWM – PWMAudioOutput
- Output using digital pins to a resistor ladder DAC - R2ROutput
- Output to SPDIF/TOSLINK - SPDIFOutput
- Encoded Audio - EncodedAudioStream
- Bluetooth Speakers – A2DPStream
- Serial to display the data as CSV – CsvOutput
- Serial to display the data as hex dump - HexDumpOutput
- Encoding and Decoding of Audio EncodedAudioStream
- Desktop Integration - PortAudioStream MiniAudioStream StdioStream
- ID3 Metadata for MP3 - MetaDataID3
- A Timer based Sink - TimerCallbackAudioStream
- ESP32 Lyrat/AudioKit - AudioBoardStream, I2SCodecStream, (AudioKitStream)
- VS1053 Codec Module - VS1053Stream
- Callback integration e.g. with ESP8266Audio AudioOutputWithCallback
- Output using FIR, IRR Filters - FilteredStream
- Determine the Volume - VolumeMeter
- Split the Output to different Destinations - MultiOutput
- 3 Band Equilizer - Equilizer3Bands
- LED Strip/Matrix - LEDOutput, LEDOutputUnoR4
- FFT - AudioRealFFT, AudioKissFFT and others
- Tensorflow Lite - TfLiteAudioStream
- Converting Streams
- Communication - ESPNowStream, UDPStream
- Multiuser-Webserver for PCM Output - AudioWAVServerEx
- Any other Arduino Classes implementing Streams: SD, Ethernet etc
Subclasses of the Arduino Print class act always as Sink. Subclasses of Arduino Stream act as Source and can usually also act as Sink.