Inspiration
We've all been in those situations where you just wanna whip out your guitar and jam with your friends, only to realize that your musical abilities suck and you have no friends. We decided that although we may be musically untalented and antisocial, we could code our way through this challenge of life just like any other. This is why we decided to make a system that augments your playing and makes it sound like you had a whole band right there with you!
What it does
PERRY first listens to 30 seconds of your playing for analysis and augmentation.
It then proceeds to analyze the music. It identifies the BPM and attempts to classify it by genre. From there it splits up your playing into individual rhythm time frames, and runs a Fourier analysis to find the notes played.
It then uses the genre and ChatGPT to generate a custom drum-beat pattern to accompany you're playing, as well as "music theory" to generate pleasing harmonies and countermelodies to be generated into a MIDI file.
Finally, PERRY combines its generated drum-machine and melodic notes with you're original recording and plays it back to you, giving you the opportunity to feel like you have real friends!
How we built it
- Drew out our design, determining dependencies, and splitting it up into modules.
- Watched the fellowship of the ring like the sad loser nerds we are
- Build individual modules separately. These modules included BPM analysis, Genre analysis, Rythym generation, Drum pattern generation
- Combined it all
Challenges we ran into
- BPM analysis is hard
- Genre classification is hard
- NOO GANDALF!!!!
- Integrating stuff is hard
Accomplishments that we're proud of
The fact that anything works Beyond that, we independently created both an AI-based automatic drum-machine AND a piano to sheet music converter in the process of creating this project.
What we learned
That despite being difficult, this is a doable task
What's next for PERRY (Personal Ensemble Rhythm & Recomposition for You)
- Non-default instruments
- Live real-time accompaniment
- A subscription model
- Make bank
Log in or sign up for Devpost to join the conversation.