Closed steveway closed 4 years ago
Wow, thankyou so much for contributing! My 2020 watches arrived and I'm going to take a look at them this weekend. I'll try the code out on the watch and merge in then.
Hi, no problem. I got mine a few days ago and looked around for interesting projects and found yours. I only meant to put the first commit in my Pull Request. But the SPIFFS one should work if you put the files on it.
I've noticed that playing on SPIFFs from my watch is dreadfull. It looks like there's the same kind of distortion you get when scrolling. My guess is that something is blocking freertos or lvgl in a way that doesn't happen with loading from PROGMEM. I need to dig into ESP8266Audio to see if loading mods from SPIFFS load all into RAM or stream from SPIFFS, it may be that the i/o is being blocked.
Any thoughts? I might do another push today reverting to PROGMEM but keeping the 2020 changes until this can be sorte just so people using the repo don't experience breakage.
Yeah, I'll have to experiment more. I remember having problems with audio playback with this code when I was loading from SD on a Stellaris Launchpad many years ago. (You will find a link to my Repo in the AudioGeneratorMOD files :) ) I've read that instead of SPIFFS LITTLEFS is the recommended way, it has a bit more overhead but is apparently much faster. Maybe that already improves this problem. EDIT: Actually apparently on the ESP32 LittleFS is not yet available, bummer.
I took a look at seeing if I could abuse the progmem to read the full mod off SPIFFS, store it in RAM and play from a buffer but I didn't have the time to get something working at the weekend. It might even be possible to abuse casting and the progmem player. There's another issue with libs that'll probably take up this coming weekend but if you fancy a punt at playing a ram-buffered mod that would be really helpful. No worries if not.
Audio needs to use external DAC on the 2020 Version, also it needs to be set up after bma and axp or these will not initialise. Also rotate the display correctly.