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.

Built With

Share this project:

Updates