Inspiration

Large numbers of notifications devalue individual ones, making user tracking of important smartphone notifications such as text messages and emails harder. Users are essentially being spammed by notifications, especially on android with undismissable notifications.

What is the goal of notifications? That's a question that our team came up with a few answers for. Notifications should contain maximal relevant information in an ultimately sparse experience. The loading of the notification tone to integrate music theory as a information channel is an intuitive step forward in smartphone UX. Major vs minor key, dissonant vs harmonic, lower pitch vs higher pitch, these are just some of many possibilities.

What it does

Important notifications have their text grabbed by our Android app Emotification, which sends it to Microsoft's Sentiment Analysis of their Cognitive Services suite. The resulting score (0 to 1, with 1 denoting happier and 0 denoting sadder) is sent to our server which compiles a C chord (with C as the base note) of a octave between 0 and 8 corresponding with happiness. C is the base note, and either a major chord (E then G) or a minor chord (Eb then G) is created. Emotification then plays the custom .midi file created by our server.

How we built it

Android Studio was used to build the Android application. Our server uses python with Flask as the server library and Mingus as the audio library. Amazon Web Services EC2 hosts our python code.

Challenges we ran into

Human hearing range only includes about 10 octaves (from 0 to 10), and the highest range of human hearing is not present in all of the population. Extremely high pitches can also irritate some. These two effects combined limit our octave range to about 8 octaves. The individual associations between different tones and happiness/sadness is variable, and even well documented effects such as major key chords being perceived as happier than minor key chords are still susceptible to this vulnerability. AWS Lambda is a rather opinionated web platform and was troublesome to work out.

Accomplishments that we're proud of

A flexible pipeline that was created by a team of people who had never known each other 36 hours before this deadline. Our Emotification software includes custom server code, a custom Android application, and use of multiple web API's. All of this complexity is presented in an user-friendly format, with a simple .apk application that has a logo and options.

Powerful text to speech support which includes support for Unicode emojis increases accessibility options for modern smartphones.

What we learned

What's next for Emotification

Loudness equalization for perceived human hearing differences between pitches (extremely low and extremely high pitches sound quieter even when the sound level in decibels is the same). Finding funding so that team members may drop out of school to pursue this project full time. We got the soylent and the red bull portions down already.

Share this project:
×

Updates

Jackson Ding posted an update

Full integration with AWS Lambda achieved

We're proud to announce that migration of our python server backend to AWS Lambda has completed. This lets us scale server performance and capabilities in real time to demand.

Log in or sign up for Devpost to join the conversation.