Auto Analog Audio  1.43
TMRh20 2020 - Automatic DAC, ADC & Timers on Arduino Due
Automatic Analog Audio Library for Arduino

Auto Analog Audio (Automatic DAC, ADC & Timer) library

Goals:

Extremely low-latency digital audio recording, playback, communication and relaying at high speeds

Features:

  • Now supports AVR devices (Arduino Uno,Nano,Mega,etc)
  • Designed with low-latency radio/wireless communication in mind
  • Very simple user interface to Arduino DUE DAC and ADC
  • PCM/WAV Audio/Analog Data playback using Arduino Due DAC
  • PCM/WAV Audio/Analog Data recording using Arduino Due ADC
  • Onboard timers drive the DAC & ADC automatically
  • Automatic sample rate/timer adjustment based on rate of user-driven data requests/input
  • Uses DMA (Direct Memory Access) to buffer DAC & ADC data
  • ADC & DAC: 8, 10 or 12-bit sampling
  • Single channel or stereo output
  • Multi-channel ADC sampling

The library internally configures timing based on user driven data requests or delivery, making data available or processing it at the appropriate speed without delays or while() loops.

The library can also be configured to operate at a set sample rate, with the getADC() and feedDAC() functions blocking until data is available or ready to be processed.

Library Source Code & Information:
http://github.com/TMRh20
http://tmrh20.blogspot.com