Inspiration

Learning music and transcribing unfamiliar songs can be daunting, so we created Cadence to combine both into one educational platform. Inspired by our own musical journeys, we realized many people follow online chords without understanding where, why, or how they are derived. We built this app to bridge music theory and practice by showing how chord progressions are embedded into real songs, while adding an automated transcription feature to save time and make analyzing complex music effortless.

What it does

Cadence is an application which has 2 primary functions which compliment one another: transcribe foreign songs, and learn music theory (primarily chord progressions and scale theory). This makes it suitable both for beginners who want to learn and for musicians who require quick, seamless transcriptions of songs for their next gig. When songs are automatically transcribed by the application, key common chord progressions are highlighted and explained for learning experience. A chord progression databank is also available for those who want to browse common chord progressions.

How we built it

As per the main theme of the hackathon, we did not code this ourselves; rather, we utilized Build With AI: Basics' built in agents and multi-file workflows to design, architect, and assemble the entire application. The application itself is created using Python 3.12 and Streamlit, therefore running on a browser app, hence requiring zero API keys, cloud services, or internet connection. Key libraries include the usage of librosa to extract beat and audio features and joblib which manages model loading without remote overhead. A local scikit-learn classifier instantly identifies chords from uploaded audio, which has been trained by us using our own personal songs and transcriptions as training data.

Challenges we ran into

Since this is our first time joining a hackathon, we did not realize how much time it would take despite letting AI do all the work. That is to say, drafting the concept and trying to think of something unique is quite difficult for us. In the end, we decided to stick with things which are close to us, and we figured music is just that. Furthermore, although we have the rough idea on paper, the AI asks challenging questions about visual features and technical inquiries which we haven't thought of at all at that time, which made us realize how crucial planning is in program development. All of these were great learning experiences.

Accomplishments that we're proud of

As we balanced doing this hackathon with our university lives, we are just glad that we are able to finish this hackathon and submit all the work on time. We understand that there are still many limitations to our program, and yet, we are proud of the fact that we are able to make a functioning and user-friendly platform which demonstrates its goal clearly, albeit needing further refinements particularly in the accuracy of transcription and the databank of chord progressions.

What we learned

From this experience, we learnt a lot about planning, time management, and consistency. We made the grave mistake of doing most of the work 1 day before submission, which we realized was way too hectic and rushed than we initially realized, making our planning less effective. Therefore, we also realized the importance of consistency in creating programs (don't rush everything in one night!) Besides this, we also learnt about how to effectively create a program using AI, that is to say, using AI simply for the coding and development part, but leaving all the ideas and brainstorming to ourselves. We also learnt a lot about technical terms such as "libraries," "repositories," and so on.

What's next for Cadence

Cadence is still a rough draft. As previously stated, Cadence can still be improved through a more accurate and rigorously trained model for transcription and a broader data bank of chord progressions and lessons for theories.

Built With

Share this project:

Updates

Submission history