Playing sound (mp3 or wav) while a program runs....best way?

For my project I want to turn on the arduino and it does a lighting sequence in a loop while sound plays along with it. then if a button is pushed amongst a series of buttons and switches, i want either the sound/music to play with the lightning sequence continues undisturbed, the lighting sequence change while the song/sound plays undisturbed, or both change without a hic up.

I keep getting referred to the mp3 or wav shield by adafruit and was wondering if there other alternatives that were better or would do the same thing or that can you do what the shields can do with just a sdcard module and programming?

any help would be great. thanks.

I would recommend a DFPlayer Mini. Inexpensive and easy to use.
$_1 (4).JPG

$_1 (4).JPG