Inspiration

I'm a musician, and I often get stumped when making new music because I feel like my ideas don't resonate with me, or my ideas don't motivate me to develop them further. I often have difficulties coming up with chord progressions that I can play melodies along to, as I often come up with a couple of chords and find them too 'boring' to play over.

That's why I created the Harmonizer - to help me create music and help me develop my abilities as a musician.

What it does

The Harmonizer presents a randomized chord progression to the user. It is then up to the user to take this chord progression, attempt to play it, and see if they are able to play the chord progression or improvise over it. If the user dislikes the given chord progression, they are able to generate a new one.

In order to use the Harmonizer, basic knowledge of music theory and chord building is required.

How I built it

The Harmonizer was built using Arduino, with its components being connected through the use of a breadboard. I connected an LCD display to the Arduino, which displays menu prompts. The user can cycle through these menu prompts by pressing a button. The user also attains information through the LCD display, as the program gives a chosen chord progression by using this menu.

There is also a small speaker connected to the breadboard, as the Harmonizer was initially designed to play an accompanying bassline to help the user with their improvisation.

Challenges I ran into

Unfortunately, I wasn't able to get the Harmonizer to play the audio I coded it to play, and I didn't have enough time to debug the issue and get the audio working by the deadline. Because of this, I had to scale down the Harmonizer's functionality and it now has a fraction of the features I initially planned it to have.

Accomplishments that I'm proud of

I'm proud of submitting this hackathon project! Despite the Harmonizer's shortcomings, I'm glad that I was at least able to produce a working project and "demo" it. This is also my first time building something this complex using an Arduino/hardware, so I'm glad that I was able to build a functional project in the first place.

What we learned

I learned that debugging is time consuming and often can't be done in one night! Also, through this project, I also learned about different ways the user can interact with the Arduino via different I/O devices and how navigating a simple menu works with hardware.

In addition to this, I gained some experience with working with Arduino's tone() library, as that is what I used to have the Arduino play sounds.

What's next for The Harmonizer

Getting it to play audio, like I originally intended, is the most pressing goal. Beyond that, I want to make the program more complex and have the Harmonizer generate basslines for more complex chord progressions.

I could also use artificial intelligence to analyze a variety of different jazz songs, and then have AI compose basslines itself. At the moment, the Harmonizer was designed to play basslines that I wrote myself, but listening to these basslines after a while can be repetitive and boring. If the program is able to dynamically create basslines on the fly, it would be a more valuable practice tool for those looking to deepen their musical skills.

Built With

Share this project:

Updates