mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-10 21:24:12 +01:00
68e5047736
Renamed Leonardo Only examples folder to USB. Modified keyboard and Mouse examples to indicate Due compatibility. Minor modifications to Due examples to conform with existing example sketches. Added keywords to for Audio, Scheduer, and USBHost libraries.
84 lines
1.7 KiB
C++
84 lines
1.7 KiB
C++
/*
|
|
Simple Audio Player
|
|
|
|
Demonstrates the use of the Audio library for the Arduino Due
|
|
|
|
Hardware required :
|
|
* Arduino shield with a SD card on CS4
|
|
* A sound file named "test.wav" in the root directory of the SD card
|
|
* Speaker attched to ground and DAC0
|
|
|
|
Original by Massimo Banzi September 20, 2012
|
|
Modified by Scott Fitzgerald October 19, 2012
|
|
|
|
This example code is in the public domain
|
|
|
|
http://arduino.cc/en/Tutorial/SimpleAudioPlayer
|
|
|
|
*/
|
|
|
|
#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) ;
|
|
}
|
|
|