Although we all have opposable thumbs, it's easier to move our thumbs up-and-down instead of left-and-right. But, why do we scrub music timelines side ways? Everyday, we vertically scroll through apps like Gmail, Facebook, Instagram, and almost every messenger app. So, why should playing music be different? You deserve an app which makes listening to music more enjoyable. Whether it'd be more ergonomic scrolling or the ability to save your favorite snippets, BeatsMe aims to improve your listening experience!
What it does
Users are able to upload mp3 songs. Beautiful timelines are displayed vertically which provides easier and more comfortable scrolling for the users. Users' have the ability to react and save their favourite snippets of songs.
How we built it
We built the app using Flutter. We store the music in Firebase Cloud Storage. Additional data is stored in the Cloud Firestore database. We decoded Mp3 data using PyDub and Librosa. We processed audio data using Numpy to discretize values for the UI. Results from the data processing is also stored in Firebase. We made a locally hosted server using Bottle which processes newly added music files. In general, most data transfers use Firebase API.
Challenges we ran into
It was difficult to find non-deprecated libraries which supported audio imports into Flutter apps. It was tough to find mp3 decoders in Python; most of Python's libraries only support wav files. Connecting with Firebase became a challenge since we needed to connect to various storage options and databases.
What we learned
Creating a cross-platform project meant that integration was very difficult. We had to constantly sync up to make sure requirements and dependencies were met. We learned how to coordinate tasks accordingly. Moreover, it was difficult to find appropriate libraries for audio importing and processing. We spent lots of time reading and learning about the pros and cons of various libraries. Finally, we learned how to use various tools and services such as Flutter and Firebase; this was the first time that many of us had used them.
Accomplishments that we're proud of
After trying various APIs, we are excited that we found libraries that work with our project. We are proud that we were able to complete many of our ideas and connect the various features. Although we changed small components, the overall UI improvement is huge.
What's next for BeatsMe
The next step is to partner with other music apps in order to access their songs. We hope to combine our innovative UI/UX with their resources.