Inspiration

I'm not a morning person, and I know that's a fact for a lot of students as well. The sound of your alarm going off at 8:00am, its noise like a woodpecker jacked on steroids right on your ears, only for you to not feel awake at all. So what's the obvious conclusion? Obviously not to sleep earlier. Rather, waking up to a more natural energizer, a good ole classic bop.

What it does

Chorus is a wake-up alarm which plays songs from YouTube. The songs begin at their chorus, which are calculated based on chord similarity between different segments of each audio file.

How we built it

We detected the chorus for each song using pychorus, a Python algorithm that utilizes Fast Fourier Transforms to compare chords within the song for similar segments. Being an alarm app, the frontend was accomplished with React Native, a JavaScript library for building iOS and Android applications. POST requests from the user input were handled with a REST API written with Flask in Python.

Challenges we ran into

Neither of us had ever used React Native before, making this a completely new experience for us. Consequently, we had to learn about React Native syntax as well as the troubles of push notifications stopping our music files from playing because they de-focused the phone from the app. We also spent a lot of time determining how to run our Python backend files through a JavaScript frontend. This took a long time to learn and then debug.

Accomplishments that we're proud of

We are extremely proud of how we persevered through the last few days. We were unsure how our project would turn out given our decision to use new languages that neither of us had prior experience in, but as the sun rose on the last day, we were quite content with how it eventually turned out. Moreso than the result, we were proud of how much we had learned through doing the last two days.

What we learned

Ultimately, we learned several completely new algorithms and languages in just 36 hours. We can now write solid React Native for future mobile application projects, we have a foundation for audio manipulation with Python, and we created something really fun. There were many other topics that we were exposed to, such as REST APIs, which were a massive boon for our project.

What's next for Chorus

Fixing the bug with push notifications so it can function as an alarm.

Built With

Share this project:

Updates