Inspiration

We were inspired to create this project from the brainstorming session we held at the beginning of the hackathon. After some discussion, we decided it would be the most fun of the ideas we had. Also, we reasoned it could be developed effectively within the time allotted, and struck a good balance between our current skill pool and new subjects to learn.

What it does

Our project accesses data from a database of MIDI files. These files provide us music which we parsed the for the individual notes. The notes were fed into a Markov chain which generated new songs for you to listen to.

How we built it

This project is done completely in python using modules such as pygame, Mido, and python-rtmidi. We also used .MIDI file extension inputs to parse through music notes.

Challenges we ran into

The biggest challenge we ran into was the development of the GUI. We began using the Tkinter module, however, upon difficulties with displaying the piano, we ended up utilizing the pygame module. We continued to face difficulties to draw the piano with the black keys as well as the buttons when resizing the window. However, eventually, we were able to overcome these challenges through documentation reading as well as googling!

Accomplishments that we're proud of

The ability to finish within the time constraints was our biggest accomplishment. Our second biggest thing we were proud of was being able to write an application in a language some of us were not that comfortable with. However, with the ability to work in groups we were able to bounce ideas off each other and help one another when necessary.

What we learned

For a majority of us, this was our very first hackathon. Due to the fact that we all attend UCR, we are mostly fluent in C++, however, trying to program this project in python taught us numerous things. Not only another language but how it differs from C++. We were able to learn how to utilize different APIs to achieve a certain task we wanted to complete. Furthermore, we learned how to manipulate .MIDI files by reading and then writing back to an output port for playback.

What's next for Citrus Hack 2021 M110

We plan to use the skills that we have learned from building our project to continue our growth as coders. We hope the experience carries us forward in our careers and will succeed to the best of our abilities. We want to make a dent in the industry and push innovation to new heights.

Built With

Share this project:

Updates