DootDoot
What is DootDoot
This is DootDoot, an app to convert audio recoordings into sheet music. Have you ever wanted to learn to play a piece music but just never had a chance to transcribe it? Well this program is the perfect solution for you! Whether is uploading a recording of music you heard live or a riff from a song you want to learn, this app has it all. Learn to play your favorite pieces with DootDoot.
How it works
DootDoot uses a variety of technologies to be able to achieve the capabilities it has. The website uploadds the .wav file to a Flask server. This then preprocesses the audio file by reducing background noise and cropping out unnecessary scilences. Afterwards, it extracts various featrue such as the BPMs. Using the BPM, the troughts, and peaks found in the .wav file, it splits the file into individual notes. These notes are converted into chromograms and the pitch is analyzed to get a the note value. This value is then further validated by a custom deep CNN model we built by scratch. The note is converted into a spectrogram and fed into the deep CNN model to get the note value. Once we have all the notes, we convert it into a pdf and send it back to the website for the user to download.
What inspired us
As music enjoyers, we often had moments where we would come up with a great melody or play our music but dont know how to put it into words... _ or even sheet music _. DootDoot will take out the hard part for you, making it so your own music is annotated automatically in to sheet music
What we learned
We learned about the power of all nighters and tight deadlines! Being mainly in Python and JavaScript, for many of us it was a great reminder of our old skills as we'd become accustomed to Java throughout our first semester at Purdue. We expanded our scope on Computer Science and even learned some machine learning, audio segmentation and website creation.
How we built our project
The bulk of the code was written entirely in Python, while most of the server and website base was in JavaScript, tensorflow and flask. We segmented our work amongst ourselves where our specialists, such as for Art or Website, were able to make the best of their abilities and do something we can all be proud of.
Challenges Faced
With all of us pulling an all-nighter, we truly believed that we could be comfortably ahead of the submission time of 10:30 by the time we wrapped up our website. However, this surprised us as mystery Error 405 messages would pop up non-stop when we thought we had everything covered.
Built With
- flask
- javascript
- python
- tensorflow
Log in or sign up for Devpost to join the conversation.