Team 16: acepilotirl#2811, parthicle#0100, jae.makitalo#3349 and Tesuist#8005


Our team wanted to do something that excites us and the user. We concluded that screaming is the best way to show excitement (as well as various other emotions).

What it does

Screamify takes a song track and a scream clip as input. It then converts the song into a series of notes in MiDi format. These notes are then converted back to audio by using modulated versions of the scream clip as an instrument.

How I built it

We first convert MP3 tracks into MiDi format using available Python modules. This provides us with a sequence of notes that represent the song. Then, we use a short audio clip of a scream and pitch it to different frequencies to represent different notes using JavaScript modules. To produce the output audio, we play pitched audio clips as dictated by the note sequence. All the audio clips are stored on Google Firebase. The front-end user interface is developed using node.js and react, and the back-end server that processes the MP3 tracks is developed using python and flask.

Challenges I ran into

Transforming audio into its a series of notes was fairly challenging. Audio signals are complicated and it was troublesome finding software libraries to assist with this task. We settled on a python library "audio-to-midi", however it utilized a C executable that was challenging to run on the cloud. To resolve this, we were required to set up a virtual machine on Google Cloud and have it interface with the other components.

Accomplishments that I'm proud of

Despite our team being novice web developers, we are proud that we were able to learn and make use of various cloud technologies to get a working product. Some tasks were better accomplished in Python, and others in JavaScript, and we are proud that we were able to conduct a tremendous amount of research into audio libraries to achieve what we wanted in such a short period of time.

What I learned

We learned a great deal about how audio signals work and are processed. We also learned and gained more experience with web development technologies such as node.js and react that are widely used in industry.

What's next for Screamify

Better processing of audio into notes and faster computation.

Share this project: