Yes, there are plenty of bluetooth enabled speakers that can be used with a smartphone to play music remotely, however, I was looking for a music system geared towards performers, like magicians, ventriloquists, jugglers and the like who perform a one man/woman show and need an easy way to queue up and play music and sounds. Stopping during the show to look at a smartphone screen to control the music is not ideal, it would be much better to press a button without looking at a screen. Besides, you don’t want your audience to hear your phone ring through your speakers if you happen to get a call during a show.
So, I created a mini music system with two Arduino devices, one that stores the music on an SD card and is hooked up to a speaker system, and the other that provides buttons and a display that controls the music. The two Arduino devices use packet radio signals to send data to each other. I am using Adafruit’s packet radio feathers. The Arduino with the buttons and display, the “music client”, sends button press data to the Arduino playing the music, the “music server”. The music server in turn plays the music and sends information about the current song, including the name of the song, the play time and the status (play, pause, and stop). Packet radio is great for sending these little bits of data, however, it is not good for sending MP3 files which are much, much, larger in size. So, my design has the MP3 files at the location of the speaker and the performer holds the music client that controls the playing.
I currently have a proof of concept hardware prototype working with Arduino sketches for controlling and playing an MP3 file. The next phase will include the ability to move forward and backwards in a play list and some scripting commands within the playlist, like don’t play the next song until a button is pressed, or repeat this song until a button is pressed.