PlayWAVFromSDToDAC.ino 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. {
  20. M5.begin();
  21. M5.Power.begin();
  22. WiFi.mode(WIFI_OFF);
  23. delay(500);
  24. M5.Lcd.setTextFont(2);
  25. M5.Lcd.printf("Sample WAV playback begins...\n");
  26. Serial.printf("Sample WAV playback begins...\n");
  27. // pno_cs from https://ccrma.stanford.edu/~jos/pasp/Sound_Examples.html
  28. file = new AudioFileSourceSD("/pno-cs.wav");
  29. out = new AudioOutputI2S(0, 1); // Output to builtInDAC
  30. out->SetOutputModeMono(true);
  31. wav = new AudioGeneratorWAV();
  32. wav->begin(file, out);
  33. }
  34. void loop()
  35. {
  36. if (wav->isRunning()) {
  37. if (!wav->loop()) wav->stop();
  38. } else {
  39. Serial.printf("WAV done\n");
  40. delay(1000);
  41. }
  42. }