Home Page | Language Reference (extended) | SD Reference | Libraries | Comparison | Changes
Audio
prepare()
Description
Prepares audio samples from the named file to the audio buffer, and sets the volume.
Syntax
Audio.prepare(buffer, samples, volume);
Parameters
buffer (short) : the named buffer holding the audio file.
samples (int) : number of samples to write
volume (int) : a 10-bit number representing the volume of the audio being played. 0 turns the sound off, 1023 is the maximum volume.
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.