Skip to content

Commit c6b9e11

Browse files
committed
Added audio MP3 and WAV play from SDCard Examples
1 parent f8c5366 commit c6b9e11

File tree

4 files changed

+155
-0
lines changed

4 files changed

+155
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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+
*/
7+
8+
9+
#include <M5Stack.h>
10+
#include <WiFi.h>
11+
#include "AudioFileSourceSD.h"
12+
#include "AudioFileSourceID3.h"
13+
#include "AudioGeneratorMP3.h"
14+
#include "AudioOutputI2S.h"
15+
16+
17+
AudioGeneratorMP3 *mp3;
18+
AudioFileSourceSD *file;
19+
AudioOutputI2S *out;
20+
AudioFileSourceID3 *id3;
21+
22+
void setup()
23+
{
24+
M5.begin();
25+
WiFi.mode(WIFI_OFF);
26+
delay(500);
27+
28+
M5.Lcd.setTextFont(2);
29+
M5.Lcd.printf("Sample MP3 playback begins...\n");
30+
Serial.printf("Sample MP3 playback begins...\n");
31+
32+
// pno_cs from https://ccrma.stanford.edu/~jos/pasp/Sound_Examples.html
33+
file = new AudioFileSourceSD("/pno-cs.mp3");
34+
id3 = new AudioFileSourceID3(file);
35+
out = new AudioOutputI2S(0, 1); // Output to builtInDAC
36+
out->SetOutputModeMono(true);
37+
mp3 = new AudioGeneratorMP3();
38+
mp3->begin(id3, out);
39+
}
40+
41+
void loop()
42+
{
43+
if (mp3->isRunning()) {
44+
if (!mp3->loop()) mp3->stop();
45+
} else {
46+
Serial.printf("MP3 done\n");
47+
delay(1000);
48+
}
49+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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+
7+
Use the "Tools->ESP32 Sketch Data Upload" menu to write the MP3 to SPIFFS
8+
Then upload the sketch normally.
9+
https://github.com/me-no-dev/arduino-esp32fs-plugin
10+
*/
11+
12+
13+
#include <M5Stack.h>
14+
#include <WiFi.h>
15+
#include "SPIFFS.h"
16+
#include "AudioFileSourceSPIFFS.h"
17+
#include "AudioFileSourceID3.h"
18+
#include "AudioGeneratorMP3.h"
19+
#include "AudioOutputI2S.h"
20+
21+
22+
AudioGeneratorMP3 *mp3;
23+
AudioFileSourceSPIFFS *file;
24+
AudioOutputI2S *out;
25+
AudioFileSourceID3 *id3;
26+
27+
28+
void setup()
29+
{
30+
M5.begin();
31+
WiFi.mode(WIFI_OFF);
32+
SPIFFS.begin();
33+
delay(500);
34+
35+
M5.Lcd.setTextFont(2);
36+
M5.Lcd.printf("Sample MP3 playback begins...\n");
37+
Serial.printf("Sample MP3 playback begins...\n");
38+
39+
// pno_cs from https://ccrma.stanford.edu/~jos/pasp/Sound_Examples.html
40+
file = new AudioFileSourceSPIFFS("/pno-cs.mp3");
41+
id3 = new AudioFileSourceID3(file);
42+
out = new AudioOutputI2S(0, 1); // Output to builtInDAC
43+
out->SetOutputModeMono(true);
44+
mp3 = new AudioGeneratorMP3();
45+
mp3->begin(id3, out);
46+
}
47+
48+
void loop()
49+
{
50+
if (mp3->isRunning()) {
51+
if (!mp3->loop()) mp3->stop();
52+
} else {
53+
Serial.printf("MP3 done\n");
54+
delay(1000);
55+
}
56+
}
314 KB
Binary file not shown.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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+
7+
Use the "Tools->ESP32 Sketch Data Upload" menu to write the MP3 to SPIFFS
8+
Then upload the sketch normally.
9+
https://github.com/me-no-dev/arduino-esp32fs-plugin
10+
*/
11+
12+
#include <M5Stack.h>
13+
#include <WiFi.h>
14+
#include "AudioFileSourceSD.h"
15+
#include "AudioGeneratorWAV.h"
16+
#include "AudioOutputI2S.h"
17+
18+
19+
AudioGeneratorWAV *wav;
20+
AudioFileSourceSD *file;
21+
AudioOutputI2S *out;
22+
23+
void setup()
24+
{
25+
M5.begin();
26+
WiFi.mode(WIFI_OFF);
27+
delay(500);
28+
29+
M5.Lcd.setTextFont(2);
30+
M5.Lcd.printf("Sample WAV playback begins...\n");
31+
Serial.printf("Sample WAV playback begins...\n");
32+
33+
// pno_cs from https://ccrma.stanford.edu/~jos/pasp/Sound_Examples.html
34+
file = new AudioFileSourceSD("/pno-cs.wav");
35+
out = new AudioOutputI2S(0, 1); // Output to builtInDAC
36+
out->SetOutputModeMono(true);
37+
wav = new AudioGeneratorWAV();
38+
wav->begin(file, out);
39+
}
40+
41+
void loop()
42+
{
43+
if (wav->isRunning()) {
44+
if (!wav->loop()) wav->stop();
45+
} else {
46+
Serial.printf("WAV done\n");
47+
delay(1000);
48+
}
49+
}
50+

0 commit comments

Comments
 (0)