We live to challenge ourselves to use technologies we have never used before. We came up with a fun and social application that utilised some of these tools.
What it does
SoundSparrow is a fun and social application designed to let people interact through music. Everyone has a unique tune that is augmented based on your mood! Mash with nearby sparrows to create unique new tunes by mixing the music.
How we built it
SoundSparrow generates a persistent UUID for each phone and uses this to seed a random number generator. In turn, this is used to algorithmically generate a song. We change musical elements based on the emotion of the user; this is done using the Microsoft Cognitive Services emotion module and sending an image taken by the user. We broadcast GAP advertising packets that contain the UUID and emotion of each user; these are picked up by all other devices and the songs are merged and played. Azure was used in order to rapidly host the photos for emotive analysis.
Challenges we ran into
Working with Android can be challenging at times, an example can be seen when attempting to implement the Bluetooth algorithm. An advertising packet can only fit 31 bytes of user data, and despite the lightweight mentality taken when considering the design, this created difficulty when deciding what information to send.
Accomplishments that we're proud of
Working on separate key areas of the project independently and subsequently being able to seamlessly merge the components together. Being able to communicate in both directions in real time between multiple Android devices through Bluetooth.
What we learned
We learned a lot about the mechanics of Android development, and now know common mistakes to avoid in future. Also gained knowledge of development in all aspects of the application using brand new tools; such as Azure and Microsoft APIs.
What's next for SoundSparrow
Next would be to take the social aspects to the next level, by sharing user details including social networking sites through the existing communication. Add OpenGL to the visualisation. Work of the UX.