| // Simple MP3 file player example | |||||
| // | |||||
| // Requires the prop-shield and Teensy 3.2 or 3.1 | |||||
| // This example code is in the public domain. | |||||
| #include <Audio.h> | |||||
| #include <Wire.h> | |||||
| #include <SPI.h> | |||||
| #include <SerialFlash.h> | |||||
| #include <play_sd_mp3.h> // https://github.com/FrankBoesing/Arduino-Teensy-Codec-lib | |||||
| //#include <play_sd_aac.h> | |||||
| // GUItool: begin automatically generated code | |||||
| //AudioPlaySdWav playSdWav1; //xy=154,422 | |||||
| AudioPlaySdMp3 playMp31; //xy=154,422 | |||||
| AudioMixer4 mixer1; //xy=327,432 | |||||
| AudioOutputAnalog dac1; //xy=502,412 | |||||
| AudioConnection patchCord1(playMp31, 0, mixer1, 0); | |||||
| AudioConnection patchCord2(playMp31, 1, mixer1, 1); | |||||
| AudioConnection patchCord3(mixer1, dac1); | |||||
| // GUItool: end automatically generated code | |||||
| #define PROP_AMP_ENABLE 5 | |||||
| #define FLASH_CHIP_SELECT 6 | |||||
| void setup() { | |||||
| AudioMemory(8); //4 | |||||
| delay(2000); | |||||
| // Start SerialFlash | |||||
| if (!SerialFlash.begin(FLASH_CHIP_SELECT)) { | |||||
| while (1) { | |||||
| Serial.println ("Cannot access SPI Flash chip"); | |||||
| delay (1000); | |||||
| } | |||||
| } | |||||
| //Start Amplifier | |||||
| pinMode(PROP_AMP_ENABLE, OUTPUT); | |||||
| digitalWrite(PROP_AMP_ENABLE, HIGH); // Enable Amplifier | |||||
| } | |||||
| void playFile(const char *filename) | |||||
| { | |||||
| SerialFlashFile ff = SerialFlash.open(filename); | |||||
| Serial.print("Playing file: "); | |||||
| Serial.println(filename); | |||||
| uint32_t sz = ff.size(); | |||||
| uint32_t pos = ff.getFlashAddress(); | |||||
| // Start playing the file. This sketch continues to | |||||
| // run while the file plays. | |||||
| playMp31.play(pos,sz); | |||||
| // Simply wait for the file to finish playing. | |||||
| while (playMp31.isPlaying()) {} | |||||
| } | |||||
| void loop() { | |||||
| playFile("rain.mp3"); | |||||
| delay(1000); | |||||
| } |