Weblessons.org
Home Page | Language Reference| extended() | SD Reference | Libraries | Comparison | Changes
Audio
write()
Description
Writes an audio signal from a buffer to DAC0 and DAC1.
Syntax
Audio.write(buffer, length);
Parameters
buffer (short) : the named buffer with the audio file.
length (int) : number of samples to write
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
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.