You hum a song, and nobody knows what you're trying to sing.

Have you ever remembered a song which you don't know the name of, but know the tune to? Well look no further, Hummit is here for you! Inspired by Shazam, we thought of a new way to intelligently search for songs by the way they sound; by converting frequencies into actual, musical notes.

What it does

While Shazam and other big companies rely on huge databases of audio data files, we rely on simple arrays that contain these musical notes that can be compared with easily and more efficiently. Essentially, we're comparing a dataset of values which are frequencies with the frequencies of an actual song that exist in our database. We can use Microsoft Azure Bot Service for Cortana so that discovering a new song is more user-friendly.

How we built it

We built a Windows-based app that uses Java and Javascript as the main programming languages. In our algorithm, we apply a Fast Fourier Transform at a specific rate to find out the frequency of human pitch per frame. Using that, we generate musical notes. These musical notes that have been detected are compared with the actual musical notes in our database. Once the application guesses the song, the user has the option of buying the song using Bitcoin from websites such as HMV or iTunes. This is done using the CoinBase API to exchange money to pay for the songs.

Challenges we ran into

Problems with the application were all tied to unnecessary frequencies being detected in our application. This made matching algorithms and the error rate difficult to compute. In order to reduce errors, the framerate was decreased in the FFT and more song data was added to the database. The second challenge that we ran into was with Microsoft Azure and Cortana. They don't have a bot service that works well in the Canadian region.

Accomplishments that we're proud

Using Java sound APIs were difficult; so being able to implement a FFT processing application without a Java sound API was quite an accomplishment. The success rate of the detection of the songs is reasonably high when the user hums the notes slowly. In all, our biggest accomplishment is that our app is working.

What we learned

  • Learning brand new libraries and implementing Java files for sound filtration algorithms was one of the biggest things we learned.
  • Cross platform use of APIs between different languages and different systems

Built With

Share this project: