Arduino Function: Audio.begin


This function initializes the Audio library. It also specifies the sample rate and size of the audio buffer.


Audio.begin(rate, size);


rate (int) : the sample rate of the sound file. If stereo, double the rate (ex. 44100Khz stereo = 88200). *size (int) : the size of the audio buffer in milliseconds.


Demonstrates the use of the Audio library for the Arduino Due

Hardware required :
*Arduino shield with a SD card on CS 4 (the Ethernet sheild will work)
*Audio amplifier circuit with speaker attached to DAC0

Original by Massimo Banzi September 20, 2012
Modified by Scott Fitzgerald October 19, 2012


void setup() {
 // debug output at 9600 baud

 // setup SD-card
 Serial.print("Initializing SD card...");
 if (!SD.begin(4)) {
   Serial.println(" failed!");
 Serial.println(" done.");
 // hi-speed SPI transfers

 // 44100Khz stereo => 88200 sample rate
 // 100 mSec of prebuffering.
 Audio.begin(88200, 100);

void loop() {
 int count=0;

 // open wave file from sdcard
 File myFile ="test.wav");
 if (!myFile) {
   // if the file didn't open, print an error and stop
   Serial.println("error opening test.wav");
   while (true);

 const int S=1024; // Number of samples to read in block
 short buffer[S];

 // until the file is not finished
 while (myFile.available()) {
   // read from the file into buffer, sizeof(buffer));

   // Prepare samples
   int volume = 1024;
   Audio.prepare(buffer, S, volume);
   // Feed samples to audio
   Audio.write(buffer, S);

   // Every 100 block print a '.'
   if (count == 100) {
     count = 0;

 Serial.println("End of file. Thank you for listening!");
 while (true) ;

Based on the reference originally written by Arduino Community, and