I've found many MP3 player projects based on the Arduino, but it is hard to choose. I'm looking for one which
has bluetooth to send sound to earphones,
remembers the track/place-in-track when the Arduino is switched off.
I don't need someone to write the software for me, but having no experience with audio and memory cards for audio I wondered if anyone has any opinions ideas about the software/libraries to use.
Bluetooth module - because I could never design a bluetooth circuit
EEPROM - on-board the Arduino AND on ESP32 for non-volatile storage
SD module or MP3 module - one seems ready-made for audio
** warning on EEPROM - do not place in uncontrolled loop(), use it once at the beginning of the sketch (and once at the end of the sketch if needed). Limited writes (100,000 is the number I remember)
Your list (not mine) is all you need... you will know when a device is too much, too little, or just right for your project. Get two of each device, learn about it, simulate it (wokwi.com), prototype it, then build it. Learn as you go... for example, I knew nothing of a "word clock" a few months ago. I searched on it, found its meaning, made mistakes, asked for others to criticize it (and... they... did). Make it fun. : )
What about your question? I tried to answer it. Maybe I added to much stuff. Your coding will make it work how you want it to work.
Choose a modern module. Some older modules seem to lack in function or flexibility, even when they all "work the same." Same with bluetooth. EEPROM seems all the same to me. I have the BT that "do not work"... but I can use them for my purpose - which is not the same as your purpose... I guess that goes for everything. What you want is different than what I want.
No, although I suppose you could start play and then use code to silence the unwanted earlier section. But I'm curious why you need that facility? Could you not just split the track into smaller tracks? Or do you want to start at a random place, rather than specific times? If so then you could apply the randomAll();
command to an appropriate set of shorter tracks.
I am tired of expensive and cheap MP3 players breaking on me. I never use them when going out, just in bed. So portability is not a problem. I listen to podcasts and the "play at the point you were when you switched it off" is an essential feature for podcast listening...
I've never used it myself, but you might consider the Raspberry Pi. It's a "single board computer" with an operating system so it also has a standard file system and it can run applications, etc. It's also got a built-in "soundcard" and Bluetooth (at least some versions). I don't know it the Bluetooth works with audio, but I'd be shocked if there aren't "solutions".
Of course most people these days are using their smart phone.
But I don't know why you are having reliability problems. I have an iPod Classic and iPod "docks" in both of my vehicles. My vehicles are even older so they don't have Bluetooth but I'll have to upgrade when/if the IPod or one of the car stereos dies.
For Bluetooth audio, you can use the "DFPlayer Mini" with an Arduino and add a Bluetooth module like HC-05. For track memory, store the track info and position in EEPROM so it can be retrieved after power off. Libraries like "DFPlayer_Mini_Mp3" and "EEPROM" should help get you started!
@Terrypin, I know I can use my smartphone, but it is bulky and has too many other temptations (look at email, look at messages, look up things on the web).
The only time I take my smartphone to bed with me is if a member of my family is out for the night, just in case there is an emergency.
In general I hate smartphones, all those bent heads scrolling through stuff. Walking into you and not apologizing, I was supposed to get out of their way, couldn't I see they were looking at something important o their phone?