PlayWAVFromSDToDAC.ino 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma mark - Depend ESP8266Audio and ESP8266_Spiram libraries
  2. /*
  3. cd ~/Arduino/libraries
  4. git clone https://github.com/earlephilhower/ESP8266Audio
  5. git clone https://github.com/Gianbacchio/ESP8266_Spiram
  6. Use the "Tools->ESP32 Sketch Data Upload" menu to write the MP3 to SPIFFS
  7. Then upload the sketch normally.
  8. https://github.com/me-no-dev/arduino-esp32fs-plugin
  9. */
  10. #include <M5Stack.h>
  11. #include <WiFi.h>
  12. #include "AudioFileSourceSD.h"
  13. #include "AudioGeneratorWAV.h"
  14. #include "AudioOutputI2S.h"
  15. AudioGeneratorWAV *wav;
  16. AudioFileSourceSD *file;
  17. AudioOutputI2S *out;
  18. void setup() {
  19. M5.begin();
  20. M5.Power.begin();
  21. WiFi.mode(WIFI_OFF);
  22. delay(500);
  23. M5.Lcd.setTextFont(2);
  24. M5.Lcd.printf("Sample WAV playback begins...\n");
  25. Serial.printf("Sample WAV playback begins...\n");
  26. // pno_cs from https://ccrma.stanford.edu/~jos/pasp/Sound_Examples.html
  27. file = new AudioFileSourceSD("/pno-cs.wav");
  28. out = new AudioOutputI2S(0, 1); // Output to builtInDAC
  29. out->SetOutputModeMono(true);
  30. wav = new AudioGeneratorWAV();
  31. wav->begin(file, out);
  32. }
  33. void loop() {
  34. if (wav->isRunning()) {
  35. if (!wav->loop()) wav->stop();
  36. } else {
  37. Serial.printf("WAV done\n");
  38. delay(1000);
  39. }
  40. }