Inspiration
Going into the hackathon we were inspired to try to incorporate AI into our project. Upon learning that the theme of the hackathon would be nostalgia, we immediately thought about music. Music is the perfect vessel for happy memories. That's why we wanted to create a tool that would make the creation of music more fun, simple and efficient. The generation of musical chord progressions was the perfect blend between the theme and our AI goals.
What it does
Chordinator is a music-producing app that enables users to create a 4-chord harmony consisting of around 16 notes only by inputting 4 initial notes. Inspired by ML and deep learning, Chordinator was expanded upon a pre-existing data set to validate its algorithmically generated chord progressions. The app allows users to playback and download the chord progressions in the form of MIDI files that can easily be processed and used in music production software.
How we built it
We wrote an algorithm ourselves to generate chord progressions using our knowledge of harmony. Finally, we tied it together with React, CSS, HTML, Javascript and Typescript for the frontend.
Challenges we ran into
Connecting the Python backend with React.js using Flask took much longer than anticipated due to Cors network errors. We also experimented with an ML approach to the app; however, due to a lack of online data available, we were unable to get a sufficient amount of test cases to train our model.
Accomplishments that we're proud of
Exploring different solutions including using deep learning, neural networks, and probability models.
What we learned
The most significant challenge we faced was attempting to create the neural network model. It was a steep learning curve, especially for us as complete beginners. Eventually we learned that less is more and we discovered an algorithm that worked much better.
What's next for Chordinator
- Expanding into minor scales
- More chord variety
- Melody producer...?
Built With
- css
- flask
- html
- javascript
- music21
- numpy
- pandas
- python
- react
- tensorflow
- typescript
Log in or sign up for Devpost to join the conversation.