We wanted to create a new and easy way to compose music. All three of us love music, and especially playing drums. It's really hard to keep track of an improvised drum solo without recording it and analyzing the beat. We figured out a way to keep track of the player's speed and rhythm of an improvised drum solo by playing virtual drum strokes in the air with Myo armbands.

What it does

We used two Myo armbands to compose music by playing the rhythm of a virtual snare-drum and a hi-hat in the air, while our web application simultaneously generates the music sheet. Name of the music, name of the composer can all be manually inputted and the whole music sheet can be downloaded as png.

How I built it

We built the front-end of the webpage using HTML5 and CSS3. We wrote Javascript to keep track of players' inputs which are connected with Lua script. We wrote Lua script to detect arm movements, acceleration and arm positions, controlling the application of Myo.

Challenges I ran into

We spent a huge amount of time discussing the algorithm of developing rhythm with different tempo and notes, and how to Javascript to simultaneously generate the music sheet. Another time consuming challenge we faced was the use of two Myo connectors. The non-primary Myo connector could not recognize arm movement perfectly. All of us were not experienced with the scripting Language Lua, so we ran into troubles debugging and testing arm movements with Myo.

Accomplishments that I'm proud of

At the end, we managed to make a web application that can compose the drum music sheet as the player plays the virtual snare drum and the hi-hat.

What I learned

The team now has a more comprehensive understanding of Javascript,Lua script, as well as hardware troubleshooting of the Myo armbands.

What's next for Myo Rhythm Composer (Drum Kit Edition)

Making the UI even more visually immersive and engaging with various tempo and instrument selections.

Share this project: