Inspiration
Ever thought of a melody in your head, but have no way to transfer it into a song? Not everybody is a music producer, but we all have that spark of music in us. We wanted to build something that expands access to music creation, to everyone.
What it does
Simply hum into the microphone and SoundSmith will work its magic. It will spit out a .mid file you can use in whatever editor you want!
How we built it
We started off identifying frequencies from a simple .wav file we recorded, then added functionalities like a noise gate to cut out quieter sounds. We implemented autotune to make it easier on the basic-pitch library to convert it to .mid. But to do that we needed to infer the correct scale from the notes that were identified. We listed out all the fundamental frequencies found in the wav using librosa's probablistic yin function. Then we converted those to the corresponding correct notes, then took the 8 most frequent notes and found the scale with the most overlap. Then we used the correct scale to autotune the wav file, then passed the autotuned wav file into basic-pitch which would convert the notes into midi.
Challenges we ran into
It's really hard to infer the scale from a few notes, sung by a person! Heres why:
- the average person can't sing with perfect pitch
- there are a lot of scales, many of which are very similar
- 8 seconds is not nearly enough time to get enough notes to guess the scale
- what you are singing may not even have 8 distinct notes in the scale
so because of this, it is quite likely that the autotune will not work as intended.
Accomplishments that we're proud of
Built a full mic to midi pipeline in just such a short time! got really close with the autotune had fun playing around with the program and meeting other hackers
What we learned
Time to take some singing lessons!
What's next for SoundSmith
go open source and hope someone else is looking for a program like this.
Log in or sign up for Devpost to join the conversation.