P

Play.ME

Groove and play the instrument you always wanted to play! * *No learning required

P

Play.ME

Groove and play the instrument you always wanted to play! * *No learning required

The problem Play.ME solves

People often want to learn how to play instruments, but don't get the time for it. Our solution makes it as easy as waving your hands to your rhythm to play a variety of instruments!
Providing two different modes, we provide both a static, button-based interface as well as an interactive, gesture-based input to play the instrument.
In the gesture mode, the user takes their phone in their right hand, and flicks it in two orientation: up and down with the screen facing up and with the screen facing right. Another button is provided on the screen to add additional sounds that can be played.
Instruments Guitar and Drums are added, which can be chosen using a toggle on the top of the screen. For the guitar, the sounds of a classic chord combination are added, using which a variety of songs can be played, while for the drums, a snare, a hi-hat and a tomtom are added, which can make almost any beat you want to groove to.

Challenges we ran into

The first hurdle that we had was to find out what sensors we have access to and if we can use them to detect hand movements. For this, we spent a couple of hours graphing the data we get from different sensors and analysing how they react to different orientation changes.
Following this, we had to find a way to be sure that the user has in fact performed the right movement and not take any spikes or inconsistent data to be true. For this, we used some fairly simple mathematics to find the movement, the speed and the orientation of the phone correctly.
Once we had this information in our hands, the next challenge was to be able to play the instruments with low latency and being able to play a sound even if a sound is previously playing. We reduced the latency by setting a threshold, which we found from our data analysis, so we could predict a jerk before it happened and start loading and playing the right audio. For the latter issue, we used a simple list of instances of the audio files, ie, each file was loaded multiple times and used a simple round-robin technique for playing the audio.

Technologies used

Discussion