Inspiration

We wanted to make a program that would harmonize with user-generated input.

What it does

If you hum, sing, or whistle a few notes of a song into your computer, the Harmonizer will record your audio and create an accompanying harmony file. It will then combine the two files and save it to your computer for you to enjoy!

How I built it

We used python's built-in wave library to access the computer's microphone, and PyAudio to detect pitch. We created a basic harmony algorithm that returns a generated sine wave tone to accompany the user's inputted note. Each "translated" note was appended to a new sound file, and that sound file was played over the original file.

Challenges I ran into

We don't know anything about music theory. Also, making the notes flow together without sounding like screaming bagpipes is something that we haven't perfected yet.

Accomplishments that I'm proud of

It kind of works? If you enjoy the sound of screaming bagpipes.

What I learned

Music theory is hard, and generating tones mathematically is even harder.

What's next for Harmonizer

No more bagpipe sounds.

Built With

Share this project:

Updates