There currently is no way to play custom backing tracks at various tempos and keys with Amazon Alexa for musicians to practice with. So, we created an Alexa skill to aid musicians by easily launching up a track to jam with in their desired key (all 12) and tempos (various speeds).


We used Amazon Web Services and the Alexa Skills Kit with NodeJS to play the audio files and we used some helper scripts with bash to generate the mp3 tracks in a variety of keys and tempos from a single MIDI file per track (e.g. Blues in Bb MIDI file at 120bpm could also create Blues in E at 200bpm). The Amazon developer console and web services was used to build the application. After connecting our dev account to the Amazon account with the Alexa Echo, successfully built skills are automatically usable from the Echo.


We are both new to NodeJS and the Alexa SDK. Any problem we ran into with Alexa would commonly lead to blog posts of others having the same issue without any resolution (enough to label this as bleeding edge technology, perfect for a hackathon!). Generating the mp3s and getting them to play from Alexa was also a challenge, as we had to figure out the specifications for mp3 quality (which unfortunately quite low).


We are proud of being able to pick up on Node and the Alexa SDK so quickly, although it was quite difficult at times. This is one of those apps that maybe sounds simple, but took a lot of maneuvering through Alexa’s NodeJS issues as it is so new and resources were often outdated. We are also glad that our helper script could successfully convert MIDI to mp3 at various tempos and keys at the required transfer rate (quality) and volume for Alexa.


Along with the technical foundations of Node and the Alexa SDK, we learned, hands-on, that new technology takes lots of patience and sometimes finagling to get work. We also learned to not give up after a failed first attempt and that it is very fun to create something that you personally would like to use to help with everyday life!


The future of the project is simply getting more tracks, preferably at a higher quality. We could also add some more voice commands, such as “increase the tempo” (requires more tracks). Even with just a few more tracks, this program would be greatly appreciated by musicians who are trying to easily practice with backing tracks, hands-free. I know we can’t wait to go home and try it with our own Echos!

Built With

Share this project: