Inspiration
There are countless "mashups" of songs on YouTube, wouldn't it be fun to make those by yourself, in seconds?
What it does
The initial concept of Merge Tone was to create a web-app that allows users to easily submit the YouTube URLs to songs of their choice, split them into their instrumentals and vocals, and then listen to them play back at the same time, with BPM adjusted
Target audience
Ultimately, anybody could make use of Merge Tone, or just play around with it to have fun. While its audio quality may not be on par with a professionally remixed song, it saves what could be hours of time of work, to provide a working idea of what two songs could sound like combined
How we built it
Borrowing from multiple Python audio libraries, the application itself handles each “part” of the process individually: fetching/downloading the MP3 file, as well as its YouTube thumbnail, splitting the audio track into _accompaniment.wav and <...>_vocals.wav accordingly, retrieving estimated BPM, etc, can all be done separately, or in sequence with one another. This enables a simple, modularized website design, where users could simply enter their tracks, choose a track for vocals and another for instrumentals, click “Merge”, and listen to their combination. Furthermore, a Figma wireframe is created, to solidify the user experience of this project.
Challenges we ran into
While we were able to make a website, and create the functional side of the app, connecting the two was more difficult than expected. Due to the nature of downloading music files to manipulate and analyze them, and the dependency on Python libraries written in C++, applications like PyScript were not able to be utilized. Flask could potentially be able to handle this task, if given more time
The BPM analyzing libraries/tools tested were not very accurate, and the one settled on was serviceable, but still often incorrect, meaning the adjusted songs wouldn’t be properly sped-up/slowed-down when listened to
Accomplishments that we're proud of
We met since the orientation day of CUNY Tech Prep program, we are so proud of our accomplishment in this project. Especially when all members have only few experience on full-stack app development, we were able to plan and execute the frontend and backend of this app. Though the fetching process and some components are yet to be polished, we are very proud of our team.
What's next for Merge-Tone
If a web-app struggles to fully implement the necessary features, a mobile app may be more capable of handling it, saving vocals and accompaniments locally.
See the slideshow for more
Installation
Please follow the instruction on /pyhton/mp3_from_url.py, use the package manager pip to install all required libraries.
pip install -r requirements.txt
Usage
$ python -m http.server
Log in or sign up for Devpost to join the conversation.