Not with mp3s. The way that mp3’s are structured means that there is always a lead in and lead out. So you have to use .wav for looping sounds - or perhaps ogg. While it would be theoretically possible to create a looping frame for mp3s that would seemlessly loop back to the second frame, this has not been done and the result would not be a mp3 file so…
I don’t suppose you’ve check the sound in an audio editor to check that the sound starts exactly at 0:00 and finishes at the same time as the sound ends?
I found some kind of solution with the new AudioEngine.
To avoid the gap, I make sure to “ready” the sound 2 seconds before I need to play it: musicId = AudioEngine::play2d(nextLoop()); AudioEngine::pause(musicId);
Then, when I need to play it: AudioEngine::resume(musicId);
You can easily guess that I have music pieces of 16 seconds each. The nextLoop() function returns the next piece to play, and musicId is a global variable.