VS1053 MP3 shield does not play at the correct speed (about one semi note too low)

Hello!

I have an issue with the VS1053 MP3 shield (version to stack onto an Arduino Uno), which plays MP3's noticeably lower (and slower) than they should play.
So, instead of playing at 48 kHz, it rather plays at somewhat like 46 kHz.

Is there maybe a way to fix this by programming?
Otherwise, I only see the possibility to adjust the samplerate of every mp3 correspondingly higher, or to resample them, so that they will be played correctly.

But maybe someone has a hint for me, for another WAV or MP3 Player.
The VS1053 also seems to be limited to access only 255 files, and the sound quality is compromised by interferences, this can clearly be heard in my setup.
Besides, there is always a gap between playing the MP3 files of about 80 ms.

For this project, I do not use an original Arduino Uno, but a compatible.
Is it possible, that the lower playing speed and the interferences are related to this?

Thank you very much for reading, and for your answer!

I can't recommend a better one, but there are always limitations with these things. That's partly because there is no operating system/file system. (A Raspberry Pi might be a better solution.)

It's probably just an inaccurate oscillator. Some cheap soundcards have the same problem.

Or, have you tried 44.1kHz? Maybe that's all it supports? (I'd be surprised... A chip that can decode MP3 should properly decode and play any valid MP3.)

MP3 encoding adds a few milliseconds of silence to the beginning and end. There is probably an additional delay for the audio shield to "process" and select the next file.

There are "gapless" audio players for a computer that can skip-over the silence, or even players that can crossfade.

The Arduino isn't the problem. These audio shields are self-contained with their own firmware, MP3 decoder, DAC, etc. It does all of the "work". The Arduino is just a controller to select a file and start/stop playback, etc. And the Arduino can't directly access the SD card.

Thank you for your answer!

I have tried other sample rates such as 44.1 kHz and 32 kHz, and now even 22.05 kHz with a low bitrate of 80 kbit/s, they all sound equal and too low in pitch/speed.

I wonder if one could fix this problem by changing something in the libraries.
Or even breaking the 255-files-boundary by changing the sd-library.

Otherwise it would not be that much of a problem for me to just resample the audio files so that they are played on this MP3 Shield correctly...

I measured the factor of the speed deviation: 0.9767
So the real samplerate when playing a 48 kHz file is 46.9 kHz.

Whatever - maybe with this factor determined, someone will see some correlations.

Yesterday I read somewhere, that the samplerate of the VS1053 would be realized by combining the quartz and a factor, and part of this factor would be 128 for 48000 Hz.
So, just some information...

Thank you, again.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.