Home Page | Language Reference (extended) | SD Reference | Libraries | Comparison | Changes
Audio
begin()
Description
Initializes the Audio library by specifying the target sample rate and size of the audio buffer.
Syntax
Audio.begin(rate, size);
Parameters
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.
Returns
nothing
Example
/* 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*/
#include <SD.h>
#include <SPI.h>
#include <Audio.h>
void
setup
(
)
{
// debug output at 9600 baud
Serial.
begin
(
9600
)
;
// setup SD-card
Serial.
print
(
"Initializing SD card..."
)
;
if
(
!SD.
begin
(
4
)
)
{
Serial.
println
(
" failed!"
)
;
return
;
}
Serial.
println
(
" done."
)
;
// hi-speed SPI transfers
SPI.
setClockDivider
(
4
)
;
// 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
= SD.
open
(
"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
]
;
Serial.
print
(
"Playing"
)
;
// until the file is not finished
while
(myFile.
available
(
)
)
{
// read from the file into buffer
myFile.
read
(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 '.'
count
++;
if
(count
==
100
)
{
Serial.
print
(
"."
)
;
count
=
0
;
}
}
myFile.
close
(
)
;
Serial.
println
(
"End of file. Thank you for listening!"
)
;
while
(
true
)
;
}
Reference Home
Corrections, suggestions, and new documentation should be posted to the Forum.
The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.