diff --git a/FW/m5stack_audio/data/Billy-Jean.mp3 b/FW/m5stack_audio/data/Billy-Jean.mp3 new file mode 100644 index 0000000..5a51adc Binary files /dev/null and b/FW/m5stack_audio/data/Billy-Jean.mp3 differ diff --git a/FW/m5stack_audio/data/ringoffire.mp3 b/FW/m5stack_audio/data/ringoffire.mp3 new file mode 100644 index 0000000..29922d3 Binary files /dev/null and b/FW/m5stack_audio/data/ringoffire.mp3 differ diff --git a/FW/m5stack_audio/src/audio.cpp b/FW/m5stack_audio/src/audio.cpp index b083ef0..84f41ad 100644 --- a/FW/m5stack_audio/src/audio.cpp +++ b/FW/m5stack_audio/src/audio.cpp @@ -2,12 +2,16 @@ AudioGeneratorMP3 *mp3; AudioFileSourceID3 *id3; - AudioFileSourceLittleFS *file; - AudioOutputI2S *out; -const char *waveFile = "/Let_it_be.mp3"; +uint8_t i = 0; +uint8_t n = 0; + +const char *waveFile[] = + {"/ringoffire.mp3", + "/Let_it_be.mp3", + "/Billy-Jean.mp3"}; // Called when a metadata event occurs (i.e. an ID3 tag, an ICY block, etc. void MDCallback(void *cbData, const char *type, bool isUnicode, const char *string) @@ -40,27 +44,35 @@ void StatusCallback(void *cbData, int code, const char *string) // Note that the string may be in PROGMEM, so copy it to RAM for printf char s1[64]; strncpy_P(s1, string, sizeof(s1)); - s1[sizeof(s1)-1]=0; + s1[sizeof(s1) - 1] = 0; Serial.printf("STATUS(%s) '%d' = '%s'\n", ptr, code, s1); Serial.flush(); } -void initAudio() +void playSong(uint8_t index) { - - - audioLogger = &Serial; - file = new AudioFileSourceLittleFS(waveFile); + if (index > AUDIONSONGS) + return; + Serial.printf("now playing %s\n", waveFile[index]); + file = new AudioFileSourceLittleFS(waveFile[index]); id3 = new AudioFileSourceID3(file); id3->RegisterMetadataCB(MDCallback, (void *)"ID3TAG"); + mp3->begin(id3, out); +} - mp3 = new AudioGeneratorMP3(); - mp3->RegisterStatusCB(StatusCallback, (void*)"mp3"); +void initAudio() +{ + Serial.println("init Audio"); + audioLogger = &Serial; out = new AudioOutputI2S(); - out->SetPinout(19, 33, 22); //bclk, wclk, data - mp3->begin(id3, out); - out->SetGain(0.25); + out->SetPinout(I2S_BCLK, I2S_WCLK, I2S_DATA); //bclk, wclk, data + out->SetGain(AUDIOGAIN); + + mp3 = new AudioGeneratorMP3(); + mp3->RegisterStatusCB(StatusCallback, (void *)"mp3"); + Serial.println("init Audio Done"); + playSong(i); } void handleAudio() @@ -69,12 +81,14 @@ void handleAudio() { if (!mp3->loop()) { - mp3->stop(); + //mp3->stop(); + if(n++ > AUDIOREPEATS) + { + i++; + n= 0; + } + playSong(i); + ; } } - else - { - Serial.printf("sound done\n"); - delay(1000); - } } \ No newline at end of file diff --git a/FW/m5stack_audio/src/audio.h b/FW/m5stack_audio/src/audio.h index 7753107..430445b 100644 --- a/FW/m5stack_audio/src/audio.h +++ b/FW/m5stack_audio/src/audio.h @@ -1,11 +1,18 @@ #pragma once +#include "board.h" #include "AudioFileSourcePROGMEM.h" #include #include "AudioGeneratorMP3.h" #include "AudioFileSourceID3.h" #include "AudioOutputI2S.h" +#define AUDIOGAIN 0.1 +#define AUDIONSONGS 3 +#define AUDIOREPEATS 3 + + void initAudio(void); -void handleAudio(void); \ No newline at end of file +void handleAudio(void); + diff --git a/FW/m5stack_audio/src/board.h b/FW/m5stack_audio/src/board.h new file mode 100644 index 0000000..6a2b335 --- /dev/null +++ b/FW/m5stack_audio/src/board.h @@ -0,0 +1,6 @@ +#pragma once + + +#define I2S_BCLK 19 +#define I2S_WCLK 33 +#define I2S_DATA 22 \ No newline at end of file diff --git a/FW/m5stack_audio/src/storage.cpp b/FW/m5stack_audio/src/storage.cpp index 9f96f5f..892ccd2 100644 --- a/FW/m5stack_audio/src/storage.cpp +++ b/FW/m5stack_audio/src/storage.cpp @@ -330,12 +330,6 @@ void initStorage() return; } listDir(LITTLEFS, "/", 0); - //testFileIO(LITTLEFS, "/test.txt"); - //listDir(LITTLEFS, "/", 0); - - //deleteFile(LITTLEFS, "/test.txt"); - - Serial.println("Test complete"); } void handleStorage() diff --git a/Tunes/Billy-Jean.MP3 b/Tunes/Billy-Jean.MP3 new file mode 100644 index 0000000..5a51adc Binary files /dev/null and b/Tunes/Billy-Jean.MP3 differ diff --git a/Tunes/Let it be 13 sec..MP3 b/Tunes/Let it be 13 sec..MP3 new file mode 100644 index 0000000..3308188 Binary files /dev/null and b/Tunes/Let it be 13 sec..MP3 differ diff --git a/Tunes/ring of fire.MP3 b/Tunes/ring of fire.MP3 new file mode 100644 index 0000000..29922d3 Binary files /dev/null and b/Tunes/ring of fire.MP3 differ